Patchwork [BUG] supported_krb5_enctypes not available if GSS support compiled as a module

login
register
mail settings
Submitter Michael Guntsche
Date April 21, 2011, 6:24 a.m.
Message ID <20110421082106@it-loops.com>
Download mbox | patch
Permalink /patch/723971/
State New, archived
Headers show

Comments

Michael Guntsche - April 21, 2011, 6:24 a.m.
On 20 Apr 11 17:39, J. Bruce Fields wrote:
> On Wed, Apr 20, 2011 at 10:49:51PM +0200, Michael Guntsche wrote:
> > Hello Bruce,
> > 
> > Commit 0a5e5f122c nfsd: fix compile error fixed a compile error by
> > putting the code between an #ifdef CONFIG_SUNRPC_GSS.
> > 
> > In my case this is compiled as a module so CONFIG_SUNRPC_GSS_MODULE is
> > defined but not CONFIG_SUNRPC_GSS. I do not know if this was on purpose
> > but as it is now "supported_krb5_enctypes" is only available if GSS
> > support is compiled in the kernel.
> 
> Ugh, fuzzy thinking on my part.
> 
> So I guess to do this right we want modules to be able to dynamically
> add files to the nfsd filesystem at module load time?

Good morning,

A little bit more sleep and taking a look at other modules I came up
with the following patch which looks ok for me.
I think you find a better wording for this commit though.

Patch

diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c
index 1f5eae4..33660ca 100644
--- a/fs/nfsd/nfsctl.c
+++ b/fs/nfsd/nfsctl.c
@@ -189,7 +189,7 @@  static struct file_operations export_features_operations = {
 	.release	= single_release,
 };
 
-#ifdef CONFIG_SUNRPC_GSS
+#if defined(CONFIG_SUNRPC_GSS) || defined(CONFIG_SUNRPC_GSS_MODULE)
 static int supported_enctypes_show(struct seq_file *m, void *v)
 {
 	struct gss_api_mech *k5mech;
@@ -1427,7 +1427,7 @@  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
+#if defined(CONFIG_SUNRPC_GSS) || defined(CONFIG_SUNRPC_GSS_MODULE)
 		[NFSD_SupportedEnctypes] = {"supported_krb5_enctypes", &supported_enctypes_ops, S_IRUGO},
 #endif /* CONFIG_SUNRPC_GSS */
 #ifdef CONFIG_NFSD_V4