mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-15 16:53:54 +08:00
[PATCH] nfsd4: rename lk_stateowner
One of the things that's confusing about nfsd4_lock is that the lk_stateowner field could be set to either of two different lockowners: the open owner or the lock owner. Rename to lk_replay_owner and add a comment to make it clear that it's used for whichever stateowner has its sequence id bumped for replay detection. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
8a28051085
commit
3a65588adc
@ -2725,11 +2725,11 @@ nfsd4_lock(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_lock
|
|||||||
lock->lk_new_open_seqid,
|
lock->lk_new_open_seqid,
|
||||||
&lock->lk_new_open_stateid,
|
&lock->lk_new_open_stateid,
|
||||||
CHECK_FH | OPEN_STATE,
|
CHECK_FH | OPEN_STATE,
|
||||||
&lock->lk_stateowner, &open_stp,
|
&lock->lk_replay_owner, &open_stp,
|
||||||
lock);
|
lock);
|
||||||
if (status)
|
if (status)
|
||||||
goto out;
|
goto out;
|
||||||
open_sop = lock->lk_stateowner;
|
open_sop = lock->lk_replay_owner;
|
||||||
/* create lockowner and lock stateid */
|
/* create lockowner and lock stateid */
|
||||||
fp = open_stp->st_file;
|
fp = open_stp->st_file;
|
||||||
strhashval = lock_ownerstr_hashval(fp->fi_inode,
|
strhashval = lock_ownerstr_hashval(fp->fi_inode,
|
||||||
@ -2752,12 +2752,12 @@ nfsd4_lock(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_lock
|
|||||||
lock->lk_old_lock_seqid,
|
lock->lk_old_lock_seqid,
|
||||||
&lock->lk_old_lock_stateid,
|
&lock->lk_old_lock_stateid,
|
||||||
CHECK_FH | LOCK_STATE,
|
CHECK_FH | LOCK_STATE,
|
||||||
&lock->lk_stateowner, &lock_stp, lock);
|
&lock->lk_replay_owner, &lock_stp, lock);
|
||||||
if (status)
|
if (status)
|
||||||
goto out;
|
goto out;
|
||||||
lock_sop = lock->lk_stateowner;
|
lock_sop = lock->lk_replay_owner;
|
||||||
}
|
}
|
||||||
/* lock->lk_stateowner and lock_stp have been created or found */
|
/* lock->lk_replay_owner and lock_stp have been created or found */
|
||||||
filp = lock_stp->st_vfs_file;
|
filp = lock_stp->st_vfs_file;
|
||||||
|
|
||||||
status = nfserr_grace;
|
status = nfserr_grace;
|
||||||
@ -2830,9 +2830,9 @@ conflicting_lock:
|
|||||||
out:
|
out:
|
||||||
if (status && lock->lk_is_new && lock_sop)
|
if (status && lock->lk_is_new && lock_sop)
|
||||||
release_stateowner(lock_sop);
|
release_stateowner(lock_sop);
|
||||||
if (lock->lk_stateowner) {
|
if (lock->lk_replay_owner) {
|
||||||
nfs4_get_stateowner(lock->lk_stateowner);
|
nfs4_get_stateowner(lock->lk_replay_owner);
|
||||||
*replay_owner = lock->lk_stateowner;
|
*replay_owner = lock->lk_replay_owner;
|
||||||
}
|
}
|
||||||
nfs4_unlock_state();
|
nfs4_unlock_state();
|
||||||
return status;
|
return status;
|
||||||
|
@ -528,7 +528,7 @@ nfsd4_decode_lock(struct nfsd4_compoundargs *argp, struct nfsd4_lock *lock)
|
|||||||
{
|
{
|
||||||
DECODE_HEAD;
|
DECODE_HEAD;
|
||||||
|
|
||||||
lock->lk_stateowner = NULL;
|
lock->lk_replay_owner = NULL;
|
||||||
/*
|
/*
|
||||||
* type, reclaim(boolean), offset, length, new_lock_owner(boolean)
|
* type, reclaim(boolean), offset, length, new_lock_owner(boolean)
|
||||||
*/
|
*/
|
||||||
@ -1895,7 +1895,6 @@ nfsd4_encode_lock_denied(struct nfsd4_compoundres *resp, struct nfsd4_lock_denie
|
|||||||
static void
|
static void
|
||||||
nfsd4_encode_lock(struct nfsd4_compoundres *resp, int nfserr, struct nfsd4_lock *lock)
|
nfsd4_encode_lock(struct nfsd4_compoundres *resp, int nfserr, struct nfsd4_lock *lock)
|
||||||
{
|
{
|
||||||
|
|
||||||
ENCODE_SEQID_OP_HEAD;
|
ENCODE_SEQID_OP_HEAD;
|
||||||
|
|
||||||
if (!nfserr) {
|
if (!nfserr) {
|
||||||
@ -1906,7 +1905,7 @@ nfsd4_encode_lock(struct nfsd4_compoundres *resp, int nfserr, struct nfsd4_lock
|
|||||||
} else if (nfserr == nfserr_denied)
|
} else if (nfserr == nfserr_denied)
|
||||||
nfsd4_encode_lock_denied(resp, &lock->lk_denied);
|
nfsd4_encode_lock_denied(resp, &lock->lk_denied);
|
||||||
|
|
||||||
ENCODE_SEQID_OP_TAIL(lock->lk_stateowner);
|
ENCODE_SEQID_OP_TAIL(lock->lk_replay_owner);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -145,8 +145,9 @@ struct nfsd4_lock {
|
|||||||
} ok;
|
} ok;
|
||||||
struct nfsd4_lock_denied denied;
|
struct nfsd4_lock_denied denied;
|
||||||
} u;
|
} u;
|
||||||
|
/* The lk_replay_owner is the open owner in the open_to_lock_owner
|
||||||
struct nfs4_stateowner *lk_stateowner;
|
* case and the lock owner otherwise: */
|
||||||
|
struct nfs4_stateowner *lk_replay_owner;
|
||||||
};
|
};
|
||||||
#define lk_new_open_seqid v.new.open_seqid
|
#define lk_new_open_seqid v.new.open_seqid
|
||||||
#define lk_new_open_stateid v.new.open_stateid
|
#define lk_new_open_stateid v.new.open_stateid
|
||||||
|
Loading…
Reference in New Issue
Block a user