summaryrefslogtreecommitdiffstats
path: root/fs/nfs/nfs4filelayout.c
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2013-03-20 12:34:32 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2013-03-21 10:31:19 -0400
commita073dbff359f4741013ae4b8395f5364c5e00b48 (patch)
tree511029ebb36cce1b4a03e4181da0dfe91cac268e /fs/nfs/nfs4filelayout.c
parent4376c94618c26225e69e17b7c91169c45a90b292 (diff)
downloadlinux-stable-a073dbff359f4741013ae4b8395f5364c5e00b48.tar.gz
linux-stable-a073dbff359f4741013ae4b8395f5364c5e00b48.tar.bz2
linux-stable-a073dbff359f4741013ae4b8395f5364c5e00b48.zip
NFSv4.1: Fix a race in pNFS layoutcommit
We need to clear the NFS_LSEG_LAYOUTCOMMIT bits atomically with the NFS_INO_LAYOUTCOMMIT bit, otherwise we may end up with situations where the two are out of sync. The first half of the problem is to ensure that pnfs_layoutcommit_inode clears the NFS_LSEG_LAYOUTCOMMIT bit through pnfs_list_write_lseg. We still need to keep the reference to those segments until the RPC call is finished, so in order to make it clear _where_ those references come from, we add a helper pnfs_list_write_lseg_done() that cleans up after pnfs_list_write_lseg. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Acked-by: Benny Halevy <bhalevy@tonian.com> Cc: stable@vger.kernel.org
Diffstat (limited to 'fs/nfs/nfs4filelayout.c')
0 files changed, 0 insertions, 0 deletions