diff options
author | Olga Kornievskaia <kolga@netapp.com> | 2017-04-26 20:21:22 +0200 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2017-04-28 19:07:00 +0200 |
commit | 88bd4f862943205183c2fc20bbba103c71e9990b (patch) | |
tree | 2abe353b76fb8796b7c58732bc0871e726f8dc59 /fs/nfs/nfs4proc.c | |
parent | NFSv4: check return value of xdr_inline_decode (diff) | |
download | linux-88bd4f862943205183c2fc20bbba103c71e9990b.tar.xz linux-88bd4f862943205183c2fc20bbba103c71e9990b.zip |
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/nfs/nfs4proc.c')
-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 dbfc7574fab0..c2b82caa9068 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; } |