aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/blocklayout
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2016-02-17 15:48:28 +0100
committerTrond Myklebust <trond.myklebust@primarydata.com>2016-02-17 11:38:07 -0500
commit4bdf87ebda016b864b388f96ae349e76983ebac4 (patch)
tree59fd9b5f6831f85e01c07565a09656e5d9623b8c /fs/nfs/blocklayout
parentNFSv4: Fix a dentry leak on alias use (diff)
downloadlinux-dev-4bdf87ebda016b864b388f96ae349e76983ebac4.tar.xz
linux-dev-4bdf87ebda016b864b388f96ae349e76983ebac4.zip
nfs4: fix stateid handling for the NFS v4.2 operations
The newly added NFS v4.2 operations (ALLOCATE, DEALLOCATE, SEEK and CLONE) use a helper called nfs42_set_rw_stateid to select a stateid that is sent to the server. But they don't set the inode and state fields in the nfs4_exception structure, and this don't partake in the stateid recovery protocol. Because of this they will simply return errors insted of trying to recover a stateid when the server return a BAD_STATEID error. Additionally CLONE has the problem that it operates on two files and thus two stateids, and thus needs to call the exception handler twice to recover stateids. While we're at it stop grabbing an addititional reference to the open context in all these operations - having the file open guarantees that the open context won't go away. All this can be produces with the generic/168 and generic/170 tests in xfstests which stress the CLONE stateid handling. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'fs/nfs/blocklayout')
0 files changed, 0 insertions, 0 deletions