Re: [PATCH] nfsd: don't create nfsv4recoverydir in nfsdfs when not used.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux