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

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

 



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 */ {""}




[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