Re: linux-next: build failure after merge of the cifs tree

Previous thread: [PATCH 1/2 v2] ARM: Fix gen_nand probe structures contents by Marek Vasut on Wednesday, August 11, 2010 - 7:53 pm. (8 messages)

Next thread: [PATCH -v3] ACPI, APEI, ERST debug support by Huang Ying on Wednesday, August 11, 2010 - 8:55 pm. (3 messages)
From: Stephen Rothwell
Date: Wednesday, August 11, 2010 - 8:17 pm

Hi all,

After merging the cifs tree, today's linux-next build (powerpc
ppc64_defconfig) failed like this:

net/dns_resolver/dns_key.c: In function 'dns_resolver_instantiate':
net/dns_resolver/dns_key.c:70: error: dereferencing pointer to incomplete type
net/dns_resolver/dns_key.c:70: error: dereferencing pointer to incomplete type
net/dns_resolver/dns_key.c:99: error: dereferencing pointer to incomplete type
net/dns_resolver/dns_key.c:128: error: dereferencing pointer to incomplete type
net/dns_resolver/dns_key.c:136: error: dereferencing pointer to incomplete type
net/dns_resolver/dns_key.c:143: error: dereferencing pointer to incomplete type
net/dns_resolver/dns_key.c:144: error: dereferencing pointer to incomplete type
net/dns_resolver/dns_key.c:149: error: implicit declaration of function 'key_payload_reserve'
net/dns_resolver/dns_key.c:162: error: dereferencing pointer to incomplete type
net/dns_resolver/dns_key.c: In function 'dns_resolver_match':
net/dns_resolver/dns_key.c:178: error: dereferencing pointer to incomplete type
net/dns_resolver/dns_key.c: In function 'dns_resolver_describe':
net/dns_resolver/dns_key.c:211: error: dereferencing pointer to incomplete type
net/dns_resolver/dns_key.c:213: error: dereferencing pointer to incomplete type
net/dns_resolver/dns_key.c:217: error: dereferencing pointer to incomplete type
net/dns_resolver/dns_key.c: At top level:
net/dns_resolver/dns_key.c:220: error: variable 'key_type_dns_resolver' has initializer but incomplete type
net/dns_resolver/dns_key.c:221: error: unknown field 'name' specified in initializer
net/dns_resolver/dns_key.c:221: warning: excess elements in struct initializer
net/dns_resolver/dns_key.c:221: warning: (near initialization for 'key_type_dns_resolver')
net/dns_resolver/dns_key.c:222: error: unknown field 'instantiate' specified in initializer
net/dns_resolver/dns_key.c:222: warning: excess elements in struct initializer
net/dns_resolver/dns_key.c:222: warning: (near initialization for ...
From: Steve French
Date: Wednesday, August 11, 2010 - 9:04 pm

Are you sure that this is a valid config file?  CONFIG_KEYS should be
set if CONFIG_DNS_RESOLVER is set?

key.h looks like it is included in all arch in this path

net/dns_resolver/dns_key.c includes
include/keys/dns_resolver-type.h which includes
include/linux/key-type.h which includes
include/linux/key.h

the line 258 "key_instantiate_and_link" error could occur if
"CONFIG_KEYS" is not set in .config
net/dns_resolver/Kconfig config DNS_RESOLVER "depends on NET && KEYS"
so ... CONFIG_KEYS should be set ....







-- 
Thanks,

Steve
--

From: Stephen Rothwell
Date: Thursday, August 12, 2010 - 12:46 am

Hi Steve,


It is a ppc64_defconfig.  It has:

# CONFIG_KEYS is not set
CONFIG_DNS_RESOLVER=y

CONFIG_NFS_USE_KERNEL_DNS just selects CONFIG_DNS_RESOLVER but there is
no dependency on CONFIG_KEYS (select does not care about the


See above.  You need CONFIG_NFS_USE_KERNEL_DNS to also depend on
CONFIG_KEYS ...

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
From: Bryan Schumaker
Date: Thursday, August 12, 2010 - 8:18 am

Hi

I updated my NFS DNS patch.  The new version will set CONFIG_KEYS when CONFIG_NFS_USE_KERNEL_DNS is set.

Thanks for letting me know about this!

Bryan Schumaker



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@netapp.com>
Acked-by: Trond Myklebust <Trond.Myklebust@netapp.com>
---
Fix for KEYS dependency

 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
+	select KEYS
+	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 = ...
From: Steve French
Date: Thursday, August 12, 2010 - 11:21 am

Fixed in cifs-2.6.git


-- 
Thanks,

Steve
--

From: David Howells
Date: Thursday, August 12, 2010 - 8:24 am

Perhaps it needs to select CONFIG_KEYS instead?

David
--

Previous thread: [PATCH 1/2 v2] ARM: Fix gen_nand probe structures contents by Marek Vasut on Wednesday, August 11, 2010 - 7:53 pm. (8 messages)

Next thread: [PATCH -v3] ACPI, APEI, ERST debug support by Huang Ying on Wednesday, August 11, 2010 - 8:55 pm. (3 messages)