From: Trond Myklebust Date: Thu, 2 Apr 2020 19:47:08 +0000 (-0400) Subject: NFS/pnfs: Fix dereference of layout cred in pnfs_layoutcommit_inode() X-Git-Tag: rel_imx_5.10.35_2.0.0-somdevices.0~2394^2~4 X-Git-Url: https://git.somdevices.com/?a=commitdiff_plain;h=97a728f5e2ad62a069dd395d3e516bb0acdbb3ec;p=linux.git NFS/pnfs: Fix dereference of layout cred in pnfs_layoutcommit_inode() Ensure that the dereference of the layout cred is atomic with the stateid. Signed-off-by: Trond Myklebust --- diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c index 6fcf26b16816..84029c9b2b1b 100644 --- a/fs/nfs/pnfs.c +++ b/fs/nfs/pnfs.c @@ -3137,10 +3137,10 @@ pnfs_layoutcommit_inode(struct inode *inode, bool sync) end_pos = nfsi->layout->plh_lwb; nfs4_stateid_copy(&data->args.stateid, &nfsi->layout->plh_stateid); + data->cred = get_cred(nfsi->layout->plh_lc_cred); spin_unlock(&inode->i_lock); data->args.inode = inode; - data->cred = get_cred(nfsi->layout->plh_lc_cred); nfs_fattr_init(&data->fattr); data->args.bitmask = NFS_SERVER(inode)->cache_consistency_bitmask; data->res.fattr = &data->fattr;