Prev: usb 2.0 em28xx kernel panic general protection fault: 0000 [#1] SMP RIP: 0010:[<ffffffffa004fbc5>] [<ffffffffa004fbc5>] em28xx_isoc_copy_vbi+0x62e/0x812 [em28xx]
Next: [PATCH] Add fanotify syscalls to <asm-generic/unistd.h>.
From: Steve French on 11 Aug 2010 12:10 Patches 1 - 3 of this series now in cifs-2.6.git On Wed, Aug 11, 2010 at 3:37 AM, David Howells <dhowells(a)redhat.com> wrote: > From: Bryan Schumaker <bjschuma(a)netapp.com> > > Use the kernel DNS resolver to translate hostnames to IP addresses. �Create a > new config option to choose between the legacy DNS resolver and the new > resolver. > > Signed-off-by: Bryan Schumaker <bjschuma(a)netapp.com> > Acked-by: Trond Myklebust <Trond.Myklebust(a)netapp.com> > Signed-off-by: David Howells <dhowells(a)redhat.com> > --- > > �fs/nfs/Kconfig � � � | � 16 ++++++++++++++++ > �fs/nfs/dns_resolve.c | � 24 ++++++++++++++++++++++++ > �fs/nfs/dns_resolve.h | � 12 ++++++++++++ > �3 files changed, 52 insertions(+), 0 deletions(-) > > diff --git a/fs/nfs/Kconfig b/fs/nfs/Kconfig > index cc1bb33..c5bbdca 100644 > --- a/fs/nfs/Kconfig > +++ b/fs/nfs/Kconfig > @@ -100,3 +100,19 @@ config NFS_FSCACHE > � � � �help > � � � � �Say Y here if you want NFS data to be cached locally on disc through > � � � � �the general filesystem cache manager > + > +config NFS_USE_LEGACY_DNS > + � � � bool "Use the legacy NFS DNS resolver" > + � � � depends on NFS_V4 > + � � � help > + � � � � The kernel now provides a method for translating a host name into an > + � � � � IP address. �Select Y here if you would rather use your own DNS > + � � � � resolver script. > + > + � � � � If unsure, say N > + > +config NFS_USE_KERNEL_DNS > + � � � bool > + � � � depends on NFS_V4 && !NFS_USE_LEGACY_DNS > + � � � select DNS_RESOLVER > + � � � default y > diff --git a/fs/nfs/dns_resolve.c b/fs/nfs/dns_resolve.c > index 76fd235..dba50a5 100644 > --- a/fs/nfs/dns_resolve.c > +++ b/fs/nfs/dns_resolve.c > @@ -6,6 +6,29 @@ > �* Resolves DNS hostnames into valid ip addresses > �*/ > > +#ifdef CONFIG_NFS_USE_KERNEL_DNS > + > +#include <linux/sunrpc/clnt.h> > +#include <linux/dns_resolver.h> > + > +ssize_t nfs_dns_resolve_name(char *name, size_t namelen, > + � � � � � � � struct sockaddr *sa, size_t salen) > +{ > + � � � ssize_t ret; > + � � � char *ip_addr = NULL; > + � � � int ip_len; > + > + � � � ip_len = dns_query(NULL, name, namelen, NULL, &ip_addr, NULL); > + � � � if (ip_len > 0) > + � � � � � � � ret = rpc_pton(ip_addr, ip_len, sa, salen); > + � � � else > + � � � � � � � ret = -ESRCH; > + � � � kfree(ip_addr); > + � � � return ret; > +} > + > +#else > + > �#include <linux/hash.h> > �#include <linux/string.h> > �#include <linux/kmod.h> > @@ -346,3 +369,4 @@ void nfs_dns_resolver_destroy(void) > � � � �nfs_cache_unregister(&nfs_dns_resolve); > �} > > +#endif > diff --git a/fs/nfs/dns_resolve.h b/fs/nfs/dns_resolve.h > index a3f0938..199bb55 100644 > --- a/fs/nfs/dns_resolve.h > +++ b/fs/nfs/dns_resolve.h > @@ -6,8 +6,20 @@ > > �#define NFS_DNS_HOSTNAME_MAXLEN � � � �(128) > > + > +#ifdef CONFIG_NFS_USE_KERNEL_DNS > +static inline int nfs_dns_resolver_init(void) > +{ > + � � � return 0; > +} > + > +static inline void nfs_dns_resolver_destroy(void) > +{} > +#else > �extern int nfs_dns_resolver_init(void); > �extern void nfs_dns_resolver_destroy(void); > +#endif > + > �extern ssize_t nfs_dns_resolve_name(char *name, size_t namelen, > � � � � � � � �struct sockaddr *sa, size_t salen); > > > -- Thanks, Steve -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |