summaryrefslogtreecommitdiffstats
path: root/fs/nfs/nfs4_fs.h
diff options
context:
space:
mode:
authorTrond Myklebust2016-06-26 14:44:35 +0200
committerTrond Myklebust2016-06-30 21:29:57 +0200
commit8487c479e2668dd1231e9c3c77a203d744aec081 (patch)
tree886f0174f465e4b27d97087118dd229db0358502 /fs/nfs/nfs4_fs.h
parentNFS/pnfs: Do not clobber existing pgio_done_cb in nfs4_proc_read_setup (diff)
downloadkernel-qcow2-linux-8487c479e2668dd1231e9c3c77a203d744aec081.tar.gz
kernel-qcow2-linux-8487c479e2668dd1231e9c3c77a203d744aec081.tar.xz
kernel-qcow2-linux-8487c479e2668dd1231e9c3c77a203d744aec081.zip
NFSv4: Allow retry of operations that used a returned delegation stateid
Fix up nfs4_do_handle_exception() so that it can check if the operation that received the NFS4ERR_BAD_STATEID was using a defunct delegation. Apply that to the case of SETATTR, which will currently return EIO in some cases where this happens. Reported-by: Olga Kornievskaia <kolga@netapp.com> Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'fs/nfs/nfs4_fs.h')
-rw-r--r--fs/nfs/nfs4_fs.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h
index 768456fa1b17..4be567a54958 100644
--- a/fs/nfs/nfs4_fs.h
+++ b/fs/nfs/nfs4_fs.h
@@ -185,6 +185,7 @@ struct nfs4_state {
struct nfs4_exception {
struct nfs4_state *state;
struct inode *inode;
+ nfs4_stateid *stateid;
long timeout;
unsigned char delay : 1,
recovering : 1,