]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
NFSv4: Ignore NFS4ERR_OLD_STATEID in nfs41_check_open_stateid()
authorTrond Myklebust <trond.myklebust@primarydata.com>
Wed, 9 Aug 2017 01:39:28 +0000 (21:39 -0400)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Wed, 9 Aug 2017 17:36:56 +0000 (13:36 -0400)
If the call to TEST_STATEID returns NFS4ERR_OLD_STATEID, then it just
means we raced with other calls to OPEN.

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
fs/nfs/nfs4proc.c

index 3e46be8c9be14384d412c57cca01fd80ac177aa6..cbf9cdd48a3b6182a7b6e653552cae3e90b49ffd 100644 (file)
@@ -2553,9 +2553,8 @@ static int nfs41_check_open_stateid(struct nfs4_state *state)
                clear_bit(NFS_O_RDWR_STATE, &state->flags);
                clear_bit(NFS_OPEN_STATE, &state->flags);
                stateid->type = NFS4_INVALID_STATEID_TYPE;
-       }
-       if (status != NFS_OK)
                return status;
+       }
        if (nfs_open_stateid_recover_openmode(state))
                return -NFS4ERR_OPENMODE;
        return NFS_OK;