diff options
| author | Trond Myklebust <trond.myklebust@primarydata.com> | 2017-08-08 21:39:28 -0400 |
|---|---|---|
| committer | Anna Schumaker <Anna.Schumaker@Netapp.com> | 2017-08-09 13:36:56 -0400 |
| commit | c0ca0e5934b3bd70d456b363a6a989a3b4a692f1 (patch) | |
| tree | a2b1aed9b343b67c12edf7fad8699bc8605f3444 /fs | |
| parent | 1feb26162bee7b2f110facfec71b5c7bdbc7d14d (diff) | |
NFSv4: Ignore NFS4ERR_OLD_STATEID in nfs41_check_open_stateid()
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>
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/nfs/nfs4proc.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 3e46be8c9be1..cbf9cdd48a3b 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
| @@ -2553,9 +2553,8 @@ static int nfs41_check_open_stateid(struct nfs4_state *state) | |||
| 2553 | clear_bit(NFS_O_RDWR_STATE, &state->flags); | 2553 | clear_bit(NFS_O_RDWR_STATE, &state->flags); |
| 2554 | clear_bit(NFS_OPEN_STATE, &state->flags); | 2554 | clear_bit(NFS_OPEN_STATE, &state->flags); |
| 2555 | stateid->type = NFS4_INVALID_STATEID_TYPE; | 2555 | stateid->type = NFS4_INVALID_STATEID_TYPE; |
| 2556 | } | ||
| 2557 | if (status != NFS_OK) | ||
| 2558 | return status; | 2556 | return status; |
| 2557 | } | ||
| 2559 | if (nfs_open_stateid_recover_openmode(state)) | 2558 | if (nfs_open_stateid_recover_openmode(state)) |
| 2560 | return -NFS4ERR_OPENMODE; | 2559 | return -NFS4ERR_OPENMODE; |
| 2561 | return NFS_OK; | 2560 | return NFS_OK; |
