NFS4.1 handle interrupted slot reuse from ERR_DELAY
authorOlga Kornievskaia <kolga@netapp.com>
Wed, 26 Apr 2017 18:21:22 +0000 (14:21 -0400)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Fri, 28 Apr 2017 17:07:00 +0000 (13:07 -0400)
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>
fs/nfs/nfs4proc.c

index dbfc7574fab0e636f0738b4d04e905cfaa850f8f..c2b82caa9068ccf4b41ad1dbead3334f050932ca 100644 (file)
@@ -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;
        }