Message ID | 20210128064226.85025-1-dai.ngo@oracle.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] NFSv4_2: SSC helper should use its own config. | expand |
Hello Dai- > On Jan 28, 2021, at 1:42 AM, Dai Ngo <dai.ngo@oracle.com> wrote: > > Currently NFSv4_2 SSC helper, nfs_ssc, incorrectly uses GRACE_PERIOD > as its config. Fix by adding new config NFS_V4_2_SSC_HELPER which > depends on NFS_V4_2 and is automatically selected when NFSD_V4 is > enabled. Also removed the file name from a comment in nfs_ssc.c. > > Signed-off-by: Dai Ngo <dai.ngo@oracle.com> v2 of your patch has replaced the original version in the for-next branch at git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git > --- > fs/Kconfig | 4 ++++ > fs/nfs/nfs4file.c | 4 ++++ > fs/nfs/super.c | 12 ++++++++++++ > fs/nfs_common/Makefile | 2 +- > fs/nfs_common/nfs_ssc.c | 2 -- > fs/nfsd/Kconfig | 1 + > 6 files changed, 22 insertions(+), 3 deletions(-) > > diff --git a/fs/Kconfig b/fs/Kconfig > index aa4c12282301..a55bda4233bb 100644 > --- a/fs/Kconfig > +++ b/fs/Kconfig > @@ -333,6 +333,10 @@ config NFS_COMMON > depends on NFSD || NFS_FS || LOCKD > default y > > +config NFS_V4_2_SSC_HELPER > + tristate > + default y if NFS_V4=y || NFS_FS=y > + > source "net/sunrpc/Kconfig" > source "fs/ceph/Kconfig" > source "fs/cifs/Kconfig" > diff --git a/fs/nfs/nfs4file.c b/fs/nfs/nfs4file.c > index 57b3821d975a..441a2fa073c8 100644 > --- a/fs/nfs/nfs4file.c > +++ b/fs/nfs/nfs4file.c > @@ -420,7 +420,9 @@ static const struct nfs4_ssc_client_ops nfs4_ssc_clnt_ops_tbl = { > */ > void nfs42_ssc_register_ops(void) > { > +#ifdef CONFIG_NFSD_V4 > nfs42_ssc_register(&nfs4_ssc_clnt_ops_tbl); > +#endif > } > > /** > @@ -431,7 +433,9 @@ void nfs42_ssc_register_ops(void) > */ > void nfs42_ssc_unregister_ops(void) > { > +#ifdef CONFIG_NFSD_V4 > nfs42_ssc_unregister(&nfs4_ssc_clnt_ops_tbl); > +#endif > } > #endif /* CONFIG_NFS_V4_2 */ > > diff --git a/fs/nfs/super.c b/fs/nfs/super.c > index 4034102010f0..c7a924580eec 100644 > --- a/fs/nfs/super.c > +++ b/fs/nfs/super.c > @@ -86,9 +86,11 @@ const struct super_operations nfs_sops = { > }; > EXPORT_SYMBOL_GPL(nfs_sops); > > +#ifdef CONFIG_NFS_V4_2 > static const struct nfs_ssc_client_ops nfs_ssc_clnt_ops_tbl = { > .sco_sb_deactive = nfs_sb_deactive, > }; > +#endif > > #if IS_ENABLED(CONFIG_NFS_V4) > static int __init register_nfs4_fs(void) > @@ -111,15 +113,21 @@ static void unregister_nfs4_fs(void) > } > #endif > > +#ifdef CONFIG_NFS_V4_2 > static void nfs_ssc_register_ops(void) > { > +#ifdef CONFIG_NFSD_V4 > nfs_ssc_register(&nfs_ssc_clnt_ops_tbl); > +#endif > } > > static void nfs_ssc_unregister_ops(void) > { > +#ifdef CONFIG_NFSD_V4 > nfs_ssc_unregister(&nfs_ssc_clnt_ops_tbl); > +#endif > } > +#endif /* CONFIG_NFS_V4_2 */ > > static struct shrinker acl_shrinker = { > .count_objects = nfs_access_cache_count, > @@ -148,7 +156,9 @@ int __init register_nfs_fs(void) > ret = register_shrinker(&acl_shrinker); > if (ret < 0) > goto error_3; > +#ifdef CONFIG_NFS_V4_2 > nfs_ssc_register_ops(); > +#endif > return 0; > error_3: > nfs_unregister_sysctl(); > @@ -168,7 +178,9 @@ void __exit unregister_nfs_fs(void) > unregister_shrinker(&acl_shrinker); > nfs_unregister_sysctl(); > unregister_nfs4_fs(); > +#ifdef CONFIG_NFS_V4_2 > nfs_ssc_unregister_ops(); > +#endif > unregister_filesystem(&nfs_fs_type); > } > > diff --git a/fs/nfs_common/Makefile b/fs/nfs_common/Makefile > index fa82f5aaa6d9..119c75ab9fd0 100644 > --- a/fs/nfs_common/Makefile > +++ b/fs/nfs_common/Makefile > @@ -7,4 +7,4 @@ obj-$(CONFIG_NFS_ACL_SUPPORT) += nfs_acl.o > nfs_acl-objs := nfsacl.o > > obj-$(CONFIG_GRACE_PERIOD) += grace.o > -obj-$(CONFIG_GRACE_PERIOD) += nfs_ssc.o > +obj-$(CONFIG_NFS_V4_2_SSC_HELPER) += nfs_ssc.o > diff --git a/fs/nfs_common/nfs_ssc.c b/fs/nfs_common/nfs_ssc.c > index f43bbb373913..7c1509e968c8 100644 > --- a/fs/nfs_common/nfs_ssc.c > +++ b/fs/nfs_common/nfs_ssc.c > @@ -1,7 +1,5 @@ > // SPDX-License-Identifier: GPL-2.0-only > /* > - * fs/nfs_common/nfs_ssc_comm.c > - * > * Helper for knfsd's SSC to access ops in NFS client modules > * > * Author: Dai Ngo <dai.ngo@oracle.com> > diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig > index dbbc583d6273..821e5913faee 100644 > --- a/fs/nfsd/Kconfig > +++ b/fs/nfsd/Kconfig > @@ -76,6 +76,7 @@ config NFSD_V4 > select CRYPTO_MD5 > select CRYPTO_SHA256 > select GRACE_PERIOD > + select NFS_V4_2_SSC_HELPER if NFS_V4_2 > help > This option enables support in your system's NFS server for > version 4 of the NFS protocol (RFC 3530). > -- > 2.9.5 > -- Chuck Lever
diff --git a/fs/Kconfig b/fs/Kconfig index aa4c12282301..a55bda4233bb 100644 --- a/fs/Kconfig +++ b/fs/Kconfig @@ -333,6 +333,10 @@ config NFS_COMMON depends on NFSD || NFS_FS || LOCKD default y +config NFS_V4_2_SSC_HELPER + tristate + default y if NFS_V4=y || NFS_FS=y + source "net/sunrpc/Kconfig" source "fs/ceph/Kconfig" source "fs/cifs/Kconfig" diff --git a/fs/nfs/nfs4file.c b/fs/nfs/nfs4file.c index 57b3821d975a..441a2fa073c8 100644 --- a/fs/nfs/nfs4file.c +++ b/fs/nfs/nfs4file.c @@ -420,7 +420,9 @@ static const struct nfs4_ssc_client_ops nfs4_ssc_clnt_ops_tbl = { */ void nfs42_ssc_register_ops(void) { +#ifdef CONFIG_NFSD_V4 nfs42_ssc_register(&nfs4_ssc_clnt_ops_tbl); +#endif } /** @@ -431,7 +433,9 @@ void nfs42_ssc_register_ops(void) */ void nfs42_ssc_unregister_ops(void) { +#ifdef CONFIG_NFSD_V4 nfs42_ssc_unregister(&nfs4_ssc_clnt_ops_tbl); +#endif } #endif /* CONFIG_NFS_V4_2 */ diff --git a/fs/nfs/super.c b/fs/nfs/super.c index 4034102010f0..c7a924580eec 100644 --- a/fs/nfs/super.c +++ b/fs/nfs/super.c @@ -86,9 +86,11 @@ const struct super_operations nfs_sops = { }; EXPORT_SYMBOL_GPL(nfs_sops); +#ifdef CONFIG_NFS_V4_2 static const struct nfs_ssc_client_ops nfs_ssc_clnt_ops_tbl = { .sco_sb_deactive = nfs_sb_deactive, }; +#endif #if IS_ENABLED(CONFIG_NFS_V4) static int __init register_nfs4_fs(void) @@ -111,15 +113,21 @@ static void unregister_nfs4_fs(void) } #endif +#ifdef CONFIG_NFS_V4_2 static void nfs_ssc_register_ops(void) { +#ifdef CONFIG_NFSD_V4 nfs_ssc_register(&nfs_ssc_clnt_ops_tbl); +#endif } static void nfs_ssc_unregister_ops(void) { +#ifdef CONFIG_NFSD_V4 nfs_ssc_unregister(&nfs_ssc_clnt_ops_tbl); +#endif } +#endif /* CONFIG_NFS_V4_2 */ static struct shrinker acl_shrinker = { .count_objects = nfs_access_cache_count, @@ -148,7 +156,9 @@ int __init register_nfs_fs(void) ret = register_shrinker(&acl_shrinker); if (ret < 0) goto error_3; +#ifdef CONFIG_NFS_V4_2 nfs_ssc_register_ops(); +#endif return 0; error_3: nfs_unregister_sysctl(); @@ -168,7 +178,9 @@ void __exit unregister_nfs_fs(void) unregister_shrinker(&acl_shrinker); nfs_unregister_sysctl(); unregister_nfs4_fs(); +#ifdef CONFIG_NFS_V4_2 nfs_ssc_unregister_ops(); +#endif unregister_filesystem(&nfs_fs_type); } diff --git a/fs/nfs_common/Makefile b/fs/nfs_common/Makefile index fa82f5aaa6d9..119c75ab9fd0 100644 --- a/fs/nfs_common/Makefile +++ b/fs/nfs_common/Makefile @@ -7,4 +7,4 @@ obj-$(CONFIG_NFS_ACL_SUPPORT) += nfs_acl.o nfs_acl-objs := nfsacl.o obj-$(CONFIG_GRACE_PERIOD) += grace.o -obj-$(CONFIG_GRACE_PERIOD) += nfs_ssc.o +obj-$(CONFIG_NFS_V4_2_SSC_HELPER) += nfs_ssc.o diff --git a/fs/nfs_common/nfs_ssc.c b/fs/nfs_common/nfs_ssc.c index f43bbb373913..7c1509e968c8 100644 --- a/fs/nfs_common/nfs_ssc.c +++ b/fs/nfs_common/nfs_ssc.c @@ -1,7 +1,5 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * fs/nfs_common/nfs_ssc_comm.c - * * Helper for knfsd's SSC to access ops in NFS client modules * * Author: Dai Ngo <dai.ngo@oracle.com> diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig index dbbc583d6273..821e5913faee 100644 --- a/fs/nfsd/Kconfig +++ b/fs/nfsd/Kconfig @@ -76,6 +76,7 @@ config NFSD_V4 select CRYPTO_MD5 select CRYPTO_SHA256 select GRACE_PERIOD + select NFS_V4_2_SSC_HELPER if NFS_V4_2 help This option enables support in your system's NFS server for version 4 of the NFS protocol (RFC 3530).
Currently NFSv4_2 SSC helper, nfs_ssc, incorrectly uses GRACE_PERIOD as its config. Fix by adding new config NFS_V4_2_SSC_HELPER which depends on NFS_V4_2 and is automatically selected when NFSD_V4 is enabled. Also removed the file name from a comment in nfs_ssc.c. Signed-off-by: Dai Ngo <dai.ngo@oracle.com> --- fs/Kconfig | 4 ++++ fs/nfs/nfs4file.c | 4 ++++ fs/nfs/super.c | 12 ++++++++++++ fs/nfs_common/Makefile | 2 +- fs/nfs_common/nfs_ssc.c | 2 -- fs/nfsd/Kconfig | 1 + 6 files changed, 22 insertions(+), 3 deletions(-)