Re: [PATCH 2/3] NFSv3: Use the readdir fileid as the mounted-on-fileid

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

 



On Mon, 23 Feb 2015 19:14:56 -0500 Trond Myklebust
<trond.myklebust@xxxxxxxxxxxxxxx> wrote:

> When we call readdirplus, set the fileid normally returned by readdir
> as the mounted-on-fileid, since that is commonly the case if there is
> a mountpoint. To ensure that we get it right, we only set the flag if
> the readdir fileid differs from the one returned in the readdirplus
> attributes.
> 
> This again means that we can avoid the issues described in commit
> 2ef47eb1aee17 ("NFS: Fix use of nfs_attr_use_mounted_on_fileid()"),
> which only fixed NFSv4.
> 
> Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
> ---
>  fs/nfs/nfs3xdr.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/fs/nfs/nfs3xdr.c b/fs/nfs/nfs3xdr.c
> index 2a932fdc57cb..53852a4bd88b 100644
> --- a/fs/nfs/nfs3xdr.c
> +++ b/fs/nfs/nfs3xdr.c
> @@ -1987,6 +1987,11 @@ int nfs3_decode_dirent(struct xdr_stream *xdr, struct nfs_entry *entry,
>  		if (entry->fattr->valid & NFS_ATTR_FATTR_V3)
>  			entry->d_type = nfs_umode_to_dtype(entry->fattr->mode);
>  
> +		if (entry->fattr->fileid != entry->ino) {
> +			entry->fattr->mounted_on_fileid = entry->ino;
> +			entry->fattr->valid |= NFS_ATTR_FATTR_MOUNTED_ON_FILEID;
> +		}
> +
>  		/* In fact, a post_op_fh3: */
>  		p = xdr_inline_decode(xdr, 4);
>  		if (unlikely(p == NULL))


I like this!

  Reviewed-by: NeilBrown <neilb@xxxxxxx>

if you like.


Thanks,
NeilBrown

Attachment: pgpAVqxfcfKYV.pgp
Description: OpenPGP digital signature


[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