Skip to contentSkip to conversation

supported_krb5_enctypes not available if GSS support compiled as a module

BUG Michael Guntsche 2 participants 4 messages Apr 20, 2011 – Apr 21, 2011

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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.

Kind regards,
Michael

#1 lore raw
Quoted 9 lines · Michael Guntsche

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?

--b.

#2 lore raw
Quoted 11 lines · J. Bruce Fields
Quoted 9 lines · Michael Guntsche

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.

Quoted 4 lines

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?

This seems to be working already. The problem is that CONFIG_SUNRPC_GSS is not defined when configured as a module so the code is not being built in the first place. I tested this by defining CONFIG_SUNRPC_GSS at the beginning of the file.

Of course you can test for both CONFIG_SUNRPC_GSS AND *GSS_MODULE but I do not know if this is the correct way.

/Michael

#3 lore raw
In reply to J. Bruce Fields
Quoted 11 lines · J. Bruce Fields
Quoted 9 lines · Michael Guntsche

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.

Quoted 4 lines

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.
___________________________________

Fix supported_krb5_enctypes proc entry when compiled as module

The GSS module can also be compiled as a module so check for this configuration as well.

fs/nfsd/nfsctl.c +2 -2
index 1f5eae4..33660ca 100644
@@ -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