diff options
author | Olga Kornievskaia <kolga@netapp.com> | 2017-04-26 14:21:22 -0400 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2017-04-28 13:07:00 -0400 |
commit | 88bd4f862943205183c2fc20bbba103c71e9990b (patch) | |
tree | 2abe353b76fb8796b7c58732bc0871e726f8dc59 /fs | |
parent | 4edabfd7d0f7d39eeda8ffac76d9e884c22951d9 (diff) | |
download | op-kernel-dev-88bd4f862943205183c2fc20bbba103c71e9990b.zip op-kernel-dev-88bd4f862943205183c2fc20bbba103c71e9990b.tar.gz |
NFS4.1 handle interrupted slot reuse from ERR_DELAY
If the RPC slot was interrupted and server replied to the next
operation on the "reused" slot with ERR_DELAY, don't clear out
the "interrupted" flag until we properly recover.
Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/nfs/nfs4proc.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index dbfc757..c2b82ca 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -698,7 +698,8 @@ static int nfs41_sequence_process(struct rpc_task *task, session = slot->table->session; if (slot->interrupted) { - slot->interrupted = 0; + if (res->sr_status != -NFS4ERR_DELAY) + slot->interrupted = 0; interrupted = true; } |