From: J. Bruce Fields 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 Signed-off-by: Neil Brown Signed-off-by: Andrew Morton --- fs/nfsd/nfs4state.c | 16 ++++++++-------- fs/nfsd/nfs4xdr.c | 5 ++--- include/linux/nfsd/xdr4.h | 5 +++-- 3 files changed, 13 insertions(+), 13 deletions(-) diff -puN fs/nfsd/nfs4state.c~nfsd4-rename-lk_stateowner fs/nfsd/nfs4state.c --- 25/fs/nfsd/nfs4state.c~nfsd4-rename-lk_stateowner Fri Jan 13 17:54:23 2006 +++ 25-akpm/fs/nfsd/nfs4state.c Fri Jan 13 17:54:23 2006 @@ -2726,11 +2726,11 @@ nfsd4_lock(struct svc_rqst *rqstp, struc lock->lk_new_open_seqid, &lock->lk_new_open_stateid, CHECK_FH | OPEN_STATE, - &lock->lk_stateowner, &open_stp, + &lock->lk_replay_owner, &open_stp, lock); if (status) goto out; - open_sop = lock->lk_stateowner; + open_sop = lock->lk_replay_owner; /* create lockowner and lock stateid */ fp = open_stp->st_file; strhashval = lock_ownerstr_hashval(fp->fi_inode, @@ -2753,12 +2753,12 @@ nfsd4_lock(struct svc_rqst *rqstp, struc lock->lk_old_lock_seqid, &lock->lk_old_lock_stateid, CHECK_FH | LOCK_STATE, - &lock->lk_stateowner, &lock_stp, lock); + &lock->lk_replay_owner, &lock_stp, lock); if (status) 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; status = nfserr_grace; @@ -2831,9 +2831,9 @@ conflicting_lock: out: if (status && lock->lk_is_new && lock_sop) release_stateowner(lock_sop); - if (lock->lk_stateowner) { - nfs4_get_stateowner(lock->lk_stateowner); - *replay_owner = lock->lk_stateowner; + if (lock->lk_replay_owner) { + nfs4_get_stateowner(lock->lk_replay_owner); + *replay_owner = lock->lk_replay_owner; } nfs4_unlock_state(); return status; diff -puN fs/nfsd/nfs4xdr.c~nfsd4-rename-lk_stateowner fs/nfsd/nfs4xdr.c --- 25/fs/nfsd/nfs4xdr.c~nfsd4-rename-lk_stateowner Fri Jan 13 17:54:23 2006 +++ 25-akpm/fs/nfsd/nfs4xdr.c Fri Jan 13 17:54:23 2006 @@ -528,7 +528,7 @@ nfsd4_decode_lock(struct nfsd4_compounda { DECODE_HEAD; - lock->lk_stateowner = NULL; + lock->lk_replay_owner = NULL; /* * type, reclaim(boolean), offset, length, new_lock_owner(boolean) */ @@ -1895,7 +1895,6 @@ nfsd4_encode_lock_denied(struct nfsd4_co static void nfsd4_encode_lock(struct nfsd4_compoundres *resp, int nfserr, struct nfsd4_lock *lock) { - ENCODE_SEQID_OP_HEAD; if (!nfserr) { @@ -1906,7 +1905,7 @@ nfsd4_encode_lock(struct nfsd4_compoundr } else if (nfserr == nfserr_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 diff -puN include/linux/nfsd/xdr4.h~nfsd4-rename-lk_stateowner include/linux/nfsd/xdr4.h --- 25/include/linux/nfsd/xdr4.h~nfsd4-rename-lk_stateowner Fri Jan 13 17:54:23 2006 +++ 25-akpm/include/linux/nfsd/xdr4.h Fri Jan 13 17:54:23 2006 @@ -145,8 +145,9 @@ struct nfsd4_lock { } ok; struct nfsd4_lock_denied denied; } u; - - struct nfs4_stateowner *lk_stateowner; + /* The lk_replay_owner is the open owner in the open_to_lock_owner + * 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_stateid v.new.open_stateid _