diff options
Diffstat (limited to 'fs/nfs/nfs4state.c')
-rw-r--r-- | fs/nfs/nfs4state.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index f535c219cf3a..59c93f37e1b2 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c | |||
@@ -518,7 +518,11 @@ void nfs4_close_state(struct nfs4_state *state, mode_t mode) | |||
518 | newstate |= FMODE_WRITE; | 518 | newstate |= FMODE_WRITE; |
519 | if (state->state == newstate) | 519 | if (state->state == newstate) |
520 | goto out; | 520 | goto out; |
521 | if (nfs4_do_close(inode, state, newstate) == -EINPROGRESS) | 521 | if (test_bit(NFS_DELEGATED_STATE, &state->flags)) { |
522 | state->state = newstate; | ||
523 | goto out; | ||
524 | } | ||
525 | if (nfs4_do_close(inode, state, newstate) == 0) | ||
522 | return; | 526 | return; |
523 | } | 527 | } |
524 | out: | 528 | out: |