2024-06-04 15:31:55

by Chuck Lever

[permalink] [raw]
Subject: [RFC PATCH] NFSD: Fix nfsdcld warning

From: Chuck Lever <[email protected]>

Since CONFIG_NFSD_LEGACY_CLIENT_TRACKING is a new config option, its
initial default setting should have been Y (if we are to follow the
common practice of "default Y, wait, default N, wait, remove code").

Paul also suggested adding a clearer remedy action to the warning
message.

Reported-by: Paul Menzel <[email protected]>
Message-Id: <[email protected]>
Fixes: 74fd48739d04 ("nfsd: new Kconfig option for legacy client tracking")
Signed-off-by: Chuck Lever <[email protected]>
---
fs/nfsd/Kconfig | 2 +-
fs/nfsd/nfs4recover.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
index 272ab8d5c4d7..ec2ab6429e00 100644
--- a/fs/nfsd/Kconfig
+++ b/fs/nfsd/Kconfig
@@ -162,7 +162,7 @@ config NFSD_V4_SECURITY_LABEL
config NFSD_LEGACY_CLIENT_TRACKING
bool "Support legacy NFSv4 client tracking methods (DEPRECATED)"
depends on NFSD_V4
- default n
+ default y
help
The NFSv4 server needs to store a small amount of information on
stable storage in order to handle state recovery after reboot. Most
diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c
index 2c060e0b1604..67d8673a9391 100644
--- a/fs/nfsd/nfs4recover.c
+++ b/fs/nfsd/nfs4recover.c
@@ -2086,8 +2086,8 @@ nfsd4_client_tracking_init(struct net *net)
status = nn->client_tracking_ops->init(net);
out:
if (status) {
- printk(KERN_WARNING "NFSD: Unable to initialize client "
- "recovery tracking! (%d)\n", status);
+ pr_warn("NFSD: Unable to initialize client recovery tracking! (%d)\n", status);
+ pr_warn("NFSD: Is nfsdcld running? If not, enable CONFIG_NFSD_LEGACY_CLIENT_TRACKING.\n");
nn->client_tracking_ops = NULL;
}
return status;
--
2.45.1



2024-06-04 18:52:59

by Jeff Layton

[permalink] [raw]
Subject: Re: [RFC PATCH] NFSD: Fix nfsdcld warning

On Tue, 2024-06-04 at 11:24 -0400, [email protected] wrote:
> From: Chuck Lever <[email protected]>
>
> Since CONFIG_NFSD_LEGACY_CLIENT_TRACKING is a new config option, its
> initial default setting should have been Y (if we are to follow the
> common practice of "default Y, wait, default N, wait, remove code").
>
> Paul also suggested adding a clearer remedy action to the warning
> message.
>
> Reported-by: Paul Menzel <[email protected]>
> Message-Id: <[email protected]>
> Fixes: 74fd48739d04 ("nfsd: new Kconfig option for legacy client
> tracking")
> Signed-off-by: Chuck Lever <[email protected]>
> ---
>  fs/nfsd/Kconfig       | 2 +-
>  fs/nfsd/nfs4recover.c | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
> index 272ab8d5c4d7..ec2ab6429e00 100644
> --- a/fs/nfsd/Kconfig
> +++ b/fs/nfsd/Kconfig
> @@ -162,7 +162,7 @@ config NFSD_V4_SECURITY_LABEL
>  config NFSD_LEGACY_CLIENT_TRACKING
>   bool "Support legacy NFSv4 client tracking methods
> (DEPRECATED)"
>   depends on NFSD_V4
> - default n
> + default y
>   help
>     The NFSv4 server needs to store a small amount of
> information on
>     stable storage in order to handle state recovery after
> reboot. Most
> diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c
> index 2c060e0b1604..67d8673a9391 100644
> --- a/fs/nfsd/nfs4recover.c
> +++ b/fs/nfsd/nfs4recover.c
> @@ -2086,8 +2086,8 @@ nfsd4_client_tracking_init(struct net *net)
>   status = nn->client_tracking_ops->init(net);
>  out:
>   if (status) {
> - printk(KERN_WARNING "NFSD: Unable to initialize
> client "
> -     "recovery tracking! (%d)\n",
> status);
> + pr_warn("NFSD: Unable to initialize client recovery
> tracking! (%d)\n", status);
> + pr_warn("NFSD: Is nfsdcld running? If not, enable
> CONFIG_NFSD_LEGACY_CLIENT_TRACKING.\n");
>   nn->client_tracking_ops = NULL;
>   }
>   return status;

Reviewed-by: Jeff Layton <[email protected]>

2024-06-04 19:49:54

by Chuck Lever III

[permalink] [raw]
Subject: Re: [RFC PATCH] NFSD: Fix nfsdcld warning

On Tue, Jun 04, 2024 at 02:52:49PM -0400, Jeff Layton wrote:
> On Tue, 2024-06-04 at 11:24 -0400, [email protected] wrote:
> > From: Chuck Lever <[email protected]>
> >
> > Since CONFIG_NFSD_LEGACY_CLIENT_TRACKING is a new config option, its
> > initial default setting should have been Y (if we are to follow the
> > common practice of "default Y, wait, default N, wait, remove code").
> >
> > Paul also suggested adding a clearer remedy action to the warning
> > message.
> >
> > Reported-by: Paul Menzel <[email protected]>
> > Message-Id: <[email protected]>
> > Fixes: 74fd48739d04 ("nfsd: new Kconfig option for legacy client
> > tracking")
> > Signed-off-by: Chuck Lever <[email protected]>
> > ---
> > ?fs/nfsd/Kconfig?????? | 2 +-
> > ?fs/nfsd/nfs4recover.c | 4 ++--
> > ?2 files changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
> > index 272ab8d5c4d7..ec2ab6429e00 100644
> > --- a/fs/nfsd/Kconfig
> > +++ b/fs/nfsd/Kconfig
> > @@ -162,7 +162,7 @@ config NFSD_V4_SECURITY_LABEL
> > ?config NFSD_LEGACY_CLIENT_TRACKING
> > ? bool "Support legacy NFSv4 client tracking methods
> > (DEPRECATED)"
> > ? depends on NFSD_V4
> > - default n
> > + default y
> > ? help
> > ? ? The NFSv4 server needs to store a small amount of
> > information on
> > ? ? stable storage in order to handle state recovery after
> > reboot. Most
> > diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c
> > index 2c060e0b1604..67d8673a9391 100644
> > --- a/fs/nfsd/nfs4recover.c
> > +++ b/fs/nfsd/nfs4recover.c
> > @@ -2086,8 +2086,8 @@ nfsd4_client_tracking_init(struct net *net)
> > ? status = nn->client_tracking_ops->init(net);
> > ?out:
> > ? if (status) {
> > - printk(KERN_WARNING "NFSD: Unable to initialize
> > client "
> > - ??? "recovery tracking! (%d)\n",
> > status);
> > + pr_warn("NFSD: Unable to initialize client recovery
> > tracking! (%d)\n", status);
> > + pr_warn("NFSD: Is nfsdcld running? If not, enable
> > CONFIG_NFSD_LEGACY_CLIENT_TRACKING.\n");
> > ? nn->client_tracking_ops = NULL;
> > ? }
> > ? return status;
>
> Reviewed-by: Jeff Layton <[email protected]>

Thanks for the review! Applied to nfsd-next (for v6.11) --
the Fixes: tag should ensure that this will be pulled into
v6.10 eventually.

--
Chuck Lever