diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2013-03-20 17:34:32 +0100 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2013-03-21 15:31:19 +0100 |
commit | a073dbff359f4741013ae4b8395f5364c5e00b48 (patch) | |
tree | 511029ebb36cce1b4a03e4181da0dfe91cac268e /fs/nfs/nfs4filelayout.c | |
parent | pnfs-block: removing DM device maybe cause oops when call dev_remove (diff) | |
download | linux-a073dbff359f4741013ae4b8395f5364c5e00b48.tar.xz linux-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