NFSv4: Ensure nfs4_lock_expired() caches delegated locks
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
9b07357490
commit
42a2d13eee
|
@ -3454,10 +3454,10 @@ static int nfs4_lock_reclaim(struct nfs4_state *state, struct file_lock *request
|
||||||
struct nfs4_exception exception = { };
|
struct nfs4_exception exception = { };
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
/* Cache the lock if possible... */
|
|
||||||
if (test_bit(NFS_DELEGATED_STATE, &state->flags))
|
|
||||||
return 0;
|
|
||||||
do {
|
do {
|
||||||
|
/* Cache the lock if possible... */
|
||||||
|
if (test_bit(NFS_DELEGATED_STATE, &state->flags) != 0)
|
||||||
|
return 0;
|
||||||
err = _nfs4_do_setlk(state, F_SETLK, request, 1);
|
err = _nfs4_do_setlk(state, F_SETLK, request, 1);
|
||||||
if (err != -NFS4ERR_DELAY)
|
if (err != -NFS4ERR_DELAY)
|
||||||
break;
|
break;
|
||||||
|
@ -3476,6 +3476,8 @@ static int nfs4_lock_expired(struct nfs4_state *state, struct file_lock *request
|
||||||
if (err != 0)
|
if (err != 0)
|
||||||
return err;
|
return err;
|
||||||
do {
|
do {
|
||||||
|
if (test_bit(NFS_DELEGATED_STATE, &state->flags) != 0)
|
||||||
|
return 0;
|
||||||
err = _nfs4_do_setlk(state, F_SETLK, request, 0);
|
err = _nfs4_do_setlk(state, F_SETLK, request, 0);
|
||||||
if (err != -NFS4ERR_DELAY)
|
if (err != -NFS4ERR_DELAY)
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue