2011-03-10 14:47:06

by Guennadi Liakhovetski

[permalink] [raw]
Subject: NFS link failure in today's next (gss)

fs/built-in.o: In function `supported_enctypes_show':
nfsctl.c:(.text+0x7beb0): undefined reference to `gss_mech_get_by_name'
nfsctl.c:(.text+0x7bebc): undefined reference to `gss_mech_put'

.config available on request, but this looks like something pretty simple,
just a missing "select" somewherein fs/nfsd/Kconfig, perhaps, under
"config NFSD_V3."

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/


2011-03-15 14:45:45

by J. Bruce Fields

[permalink] [raw]
Subject: Re: NFS link failure in today's next (gss)

On Thu, Mar 10, 2011 at 03:46:57PM +0100, Guennadi Liakhovetski wrote:
> fs/built-in.o: In function `supported_enctypes_show':
> nfsctl.c:(.text+0x7beb0): undefined reference to `gss_mech_get_by_name'
> nfsctl.c:(.text+0x7bebc): undefined reference to `gss_mech_put'
>
> .config available on request, but this looks like something pretty simple,
> just a missing "select" somewherein fs/nfsd/Kconfig, perhaps, under
> "config NFSD_V3."

Thanks for the report. I think we just need this.--b.

commit 0a5e5f122c756d1c1a6ca712eda76ea8664e5fd9
Author: J. Bruce Fields <[email protected]>
Date: Mon Mar 14 20:57:44 2011 -0400

nfsd: fix compile error

"fs/built-in.o: In function `supported_enctypes_show':
nfsctl.c:(.text+0x7beb0): undefined reference to `gss_mech_get_by_name'
nfsctl.c:(.text+0x7bebc): undefined reference to `gss_mech_put'
"

Reported-by: Guennadi Liakhovetski <[email protected]>
Signed-off-by: J. Bruce Fields <[email protected]>

diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c
index 35dcfa8..1f5eae4 100644
--- a/fs/nfsd/nfsctl.c
+++ b/fs/nfsd/nfsctl.c
@@ -189,6 +189,7 @@ static struct file_operations export_features_operations = {
.release = single_release,
};

+#ifdef CONFIG_SUNRPC_GSS
static int supported_enctypes_show(struct seq_file *m, void *v)
{
struct gss_api_mech *k5mech;
@@ -214,6 +215,7 @@ static struct file_operations supported_enctypes_ops = {
.llseek = seq_lseek,
.release = single_release,
};
+#endif /* CONFIG_SUNRPC_GSS */

extern int nfsd_pool_stats_open(struct inode *inode, struct file *file);
extern int nfsd_pool_stats_release(struct inode *inode, struct file *file);
@@ -1425,7 +1427,9 @@ static int nfsd_fill_super(struct super_block * sb, void * data, int silent)
[NFSD_Versions] = {"versions", &transaction_ops, S_IWUSR|S_IRUSR},
[NFSD_Ports] = {"portlist", &transaction_ops, S_IWUSR|S_IRUGO},
[NFSD_MaxBlkSize] = {"max_block_size", &transaction_ops, S_IWUSR|S_IRUGO},
+#ifdef CONFIG_SUNRPC_GSS
[NFSD_SupportedEnctypes] = {"supported_krb5_enctypes", &supported_enctypes_ops, S_IRUGO},
+#endif /* CONFIG_SUNRPC_GSS */
#ifdef CONFIG_NFSD_V4
[NFSD_Leasetime] = {"nfsv4leasetime", &transaction_ops, S_IWUSR|S_IRUSR},
[NFSD_Gracetime] = {"nfsv4gracetime", &transaction_ops, S_IWUSR|S_IRUSR},