On Wed, Apr 17, 2024 at 07:25:16AM +0200, Petr Vorel wrote: > Hi Neil, all, > > > When CONFIG_NFSD_LEGACY_CLIENT_TRACKING is not set, the virtual file > > /proc/fs/nfsd/nfsv4recoverydir > > is created but responds EINVAL to any access. > > This is not useful, is somewhat surprising, and it causes ltp to > > complain. > > > The only known user of this file is in nfs-utils, which handles > > non-existence and read-failure equally well. So there is nothing to > > gain from leaving the file present but inaccessible. > > > So this patch removes the file when its content is not available - i.e. > > when that config option is not selected. > > > Also remove the #ifdef which hides some of the enum values when > > CONFIG_NFSD_V$ not selection. simple_fill_super() quietly ignores array > > entries that are not present, so having slots in the array that don't > > get used is perfectly acceptable. So there is no value in this #ifdef. > > > Reported-by: Petr Vorel <pvorel@xxxxxxx> > > Reviewed-by: Jeff Layton <jlayton@xxxxxxxxxx> > > Fixes: 74fd48739d04 ("nfsd: new Kconfig option for legacy client tracking") > > Signed-off-by: NeilBrown <neilb@xxxxxxx> > > --- > > fs/nfsd/nfsctl.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c > > index 93c87587e646..340c5d61f199 100644 > > --- a/fs/nfsd/nfsctl.c > > +++ b/fs/nfsd/nfsctl.c > > @@ -48,12 +48,10 @@ enum { > > NFSD_MaxBlkSize, > > NFSD_MaxConnections, > > NFSD_Filecache, > > -#ifdef CONFIG_NFSD_V4 > > NFSD_Leasetime, > > NFSD_Gracetime, > > NFSD_RecoveryDir, > > NFSD_V4EndGrace, > > -#endif > > NFSD_MaxReserved > > }; > > > @@ -1360,7 +1358,9 @@ static int nfsd_fill_super(struct super_block *sb, struct fs_context *fc) > > #ifdef CONFIG_NFSD_V4 > > [NFSD_Leasetime] = {"nfsv4leasetime", &transaction_ops, S_IWUSR|S_IRUSR}, > > [NFSD_Gracetime] = {"nfsv4gracetime", &transaction_ops, S_IWUSR|S_IRUSR}, > > +#ifdef CONFIG_NFSD_LEGACY_CLIENT_TRACKING > > [NFSD_RecoveryDir] = {"nfsv4recoverydir", &transaction_ops, S_IWUSR|S_IRUSR}, > > +#endif > > LGTM. > > Reviewed-by: Petr Vorel <pvorel@xxxxxxx> > > Kind regards, > Petr > > > [NFSD_V4EndGrace] = {"v4_end_grace", &transaction_ops, S_IWUSR|S_IRUGO}, > > #endif > > /* last one */ {""} Thanks to you both! Applied to nfsd-next (for v6.10), unless you'd like this to go in sooner. -- Chuck Lever