diff options
author | Trond Myklebust <trond.myklebust@primarydata.com> | 2014-02-13 01:15:06 +0100 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2014-02-20 03:21:07 +0100 |
commit | 4f14c194a996e75c01e44a8832f1d983ccaeefc0 (patch) | |
tree | 31182d2e8707bccf3cc650844785f2953ee32ac1 /fs/nfs/nfs4state.c | |
parent | NFSv4: Use correct locking when updating nfs4_state in nfs4_close_done (diff) | |
download | linux-4f14c194a996e75c01e44a8832f1d983ccaeefc0.tar.xz linux-4f14c194a996e75c01e44a8832f1d983ccaeefc0.zip |
NFSv4: Clear the open state flags if the new stateid does not match
RFC3530 and RFC5661 both prescribe that the 'opaque' field of the
open stateid returned by new OPEN/OPEN_DOWNGRADE/CLOSE calls for
the same file and open owner should match.
If this is not the case, assume that the open state has been lost,
and that we need to recover it.
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'fs/nfs/nfs4state.c')
-rw-r--r-- | fs/nfs/nfs4state.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index e5be72518bd7..b524df9f6a74 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c @@ -1321,7 +1321,7 @@ static int nfs4_state_mark_reclaim_reboot(struct nfs_client *clp, struct nfs4_st return 1; } -static int nfs4_state_mark_reclaim_nograce(struct nfs_client *clp, struct nfs4_state *state) +int nfs4_state_mark_reclaim_nograce(struct nfs_client *clp, struct nfs4_state *state) { set_bit(NFS_STATE_RECLAIM_NOGRACE, &state->flags); clear_bit(NFS_STATE_RECLAIM_REBOOT, &state->flags); |