Commit 3a65588a authored by J. Bruce Fields's avatar J. Bruce Fields Committed by Linus Torvalds

[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: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: default avatarNeil Brown <neilb@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 8a280510
...@@ -2725,11 +2725,11 @@ nfsd4_lock(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_lock ...@@ -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 ...@@ -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 @@ nfsd4_lock(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_lock ...@@ -2830,9 +2830,9 @@ nfsd4_lock(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_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) ...@@ -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 ...@@ -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 ...@@ -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 { ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment