|
@@ -154,8 +154,8 @@ alloc_init_deleg(struct nfs4_client *clp, struct nfs4_stateid *stp, struct svc_f
|
|
|
dp = kmem_cache_alloc(deleg_slab, GFP_KERNEL);
|
|
|
if (dp == NULL)
|
|
|
return dp;
|
|
|
- INIT_LIST_HEAD(&dp->dl_del_perfile);
|
|
|
- INIT_LIST_HEAD(&dp->dl_del_perclnt);
|
|
|
+ INIT_LIST_HEAD(&dp->dl_perfile);
|
|
|
+ INIT_LIST_HEAD(&dp->dl_perclnt);
|
|
|
INIT_LIST_HEAD(&dp->dl_recall_lru);
|
|
|
dp->dl_client = clp;
|
|
|
get_nfs4_file(fp);
|
|
@@ -176,8 +176,8 @@ alloc_init_deleg(struct nfs4_client *clp, struct nfs4_stateid *stp, struct svc_f
|
|
|
current_fh->fh_handle.fh_size);
|
|
|
dp->dl_time = 0;
|
|
|
atomic_set(&dp->dl_count, 1);
|
|
|
- list_add(&dp->dl_del_perfile, &fp->fi_delegations);
|
|
|
- list_add(&dp->dl_del_perclnt, &clp->cl_del_perclnt);
|
|
|
+ list_add(&dp->dl_perfile, &fp->fi_delegations);
|
|
|
+ list_add(&dp->dl_perclnt, &clp->cl_delegations);
|
|
|
return dp;
|
|
|
}
|
|
|
|
|
@@ -214,8 +214,8 @@ nfs4_close_delegation(struct nfs4_delegation *dp)
|
|
|
static void
|
|
|
unhash_delegation(struct nfs4_delegation *dp)
|
|
|
{
|
|
|
- list_del_init(&dp->dl_del_perfile);
|
|
|
- list_del_init(&dp->dl_del_perclnt);
|
|
|
+ list_del_init(&dp->dl_perfile);
|
|
|
+ list_del_init(&dp->dl_perclnt);
|
|
|
spin_lock(&recall_lock);
|
|
|
list_del_init(&dp->dl_recall_lru);
|
|
|
spin_unlock(&recall_lock);
|
|
@@ -345,11 +345,11 @@ expire_client(struct nfs4_client *clp)
|
|
|
|
|
|
INIT_LIST_HEAD(&reaplist);
|
|
|
spin_lock(&recall_lock);
|
|
|
- while (!list_empty(&clp->cl_del_perclnt)) {
|
|
|
- dp = list_entry(clp->cl_del_perclnt.next, struct nfs4_delegation, dl_del_perclnt);
|
|
|
+ while (!list_empty(&clp->cl_delegations)) {
|
|
|
+ dp = list_entry(clp->cl_delegations.next, struct nfs4_delegation, dl_perclnt);
|
|
|
dprintk("NFSD: expire client. dp %p, fp %p\n", dp,
|
|
|
dp->dl_flock);
|
|
|
- list_del_init(&dp->dl_del_perclnt);
|
|
|
+ list_del_init(&dp->dl_perclnt);
|
|
|
list_move(&dp->dl_recall_lru, &reaplist);
|
|
|
}
|
|
|
spin_unlock(&recall_lock);
|
|
@@ -361,8 +361,8 @@ expire_client(struct nfs4_client *clp)
|
|
|
list_del(&clp->cl_idhash);
|
|
|
list_del(&clp->cl_strhash);
|
|
|
list_del(&clp->cl_lru);
|
|
|
- while (!list_empty(&clp->cl_perclient)) {
|
|
|
- sop = list_entry(clp->cl_perclient.next, struct nfs4_stateowner, so_perclient);
|
|
|
+ while (!list_empty(&clp->cl_openowners)) {
|
|
|
+ sop = list_entry(clp->cl_openowners.next, struct nfs4_stateowner, so_perclient);
|
|
|
release_stateowner(sop);
|
|
|
}
|
|
|
put_nfs4_client(clp);
|
|
@@ -380,8 +380,8 @@ create_client(struct xdr_netobj name, char *recdir) {
|
|
|
clp->cl_callback.cb_parsed = 0;
|
|
|
INIT_LIST_HEAD(&clp->cl_idhash);
|
|
|
INIT_LIST_HEAD(&clp->cl_strhash);
|
|
|
- INIT_LIST_HEAD(&clp->cl_perclient);
|
|
|
- INIT_LIST_HEAD(&clp->cl_del_perclnt);
|
|
|
+ INIT_LIST_HEAD(&clp->cl_openowners);
|
|
|
+ INIT_LIST_HEAD(&clp->cl_delegations);
|
|
|
INIT_LIST_HEAD(&clp->cl_lru);
|
|
|
out:
|
|
|
return clp;
|
|
@@ -1074,13 +1074,13 @@ alloc_init_open_stateowner(unsigned int strhashval, struct nfs4_client *clp, str
|
|
|
INIT_LIST_HEAD(&sop->so_idhash);
|
|
|
INIT_LIST_HEAD(&sop->so_strhash);
|
|
|
INIT_LIST_HEAD(&sop->so_perclient);
|
|
|
- INIT_LIST_HEAD(&sop->so_perfilestate);
|
|
|
- INIT_LIST_HEAD(&sop->so_perlockowner); /* not used */
|
|
|
+ INIT_LIST_HEAD(&sop->so_stateids);
|
|
|
+ INIT_LIST_HEAD(&sop->so_perstateid); /* not used */
|
|
|
INIT_LIST_HEAD(&sop->so_close_lru);
|
|
|
sop->so_time = 0;
|
|
|
list_add(&sop->so_idhash, &ownerid_hashtbl[idhashval]);
|
|
|
list_add(&sop->so_strhash, &ownerstr_hashtbl[strhashval]);
|
|
|
- list_add(&sop->so_perclient, &clp->cl_perclient);
|
|
|
+ list_add(&sop->so_perclient, &clp->cl_openowners);
|
|
|
sop->so_is_open_owner = 1;
|
|
|
sop->so_id = current_ownerid++;
|
|
|
sop->so_client = clp;
|
|
@@ -1098,10 +1098,10 @@ release_stateid_lockowners(struct nfs4_stateid *open_stp)
|
|
|
{
|
|
|
struct nfs4_stateowner *lock_sop;
|
|
|
|
|
|
- while (!list_empty(&open_stp->st_perlockowner)) {
|
|
|
- lock_sop = list_entry(open_stp->st_perlockowner.next,
|
|
|
- struct nfs4_stateowner, so_perlockowner);
|
|
|
- /* list_del(&open_stp->st_perlockowner); */
|
|
|
+ while (!list_empty(&open_stp->st_lockowners)) {
|
|
|
+ lock_sop = list_entry(open_stp->st_lockowners.next,
|
|
|
+ struct nfs4_stateowner, so_perstateid);
|
|
|
+ /* list_del(&open_stp->st_lockowners); */
|
|
|
BUG_ON(lock_sop->so_is_open_owner);
|
|
|
release_stateowner(lock_sop);
|
|
|
}
|
|
@@ -1116,10 +1116,10 @@ unhash_stateowner(struct nfs4_stateowner *sop)
|
|
|
list_del(&sop->so_strhash);
|
|
|
if (sop->so_is_open_owner)
|
|
|
list_del(&sop->so_perclient);
|
|
|
- list_del(&sop->so_perlockowner);
|
|
|
- while (!list_empty(&sop->so_perfilestate)) {
|
|
|
- stp = list_entry(sop->so_perfilestate.next,
|
|
|
- struct nfs4_stateid, st_perfilestate);
|
|
|
+ list_del(&sop->so_perstateid);
|
|
|
+ while (!list_empty(&sop->so_stateids)) {
|
|
|
+ stp = list_entry(sop->so_stateids.next,
|
|
|
+ struct nfs4_stateid, st_perstateowner);
|
|
|
if (sop->so_is_open_owner)
|
|
|
release_stateid(stp, OPEN_STATE);
|
|
|
else
|
|
@@ -1141,11 +1141,11 @@ init_stateid(struct nfs4_stateid *stp, struct nfs4_file *fp, struct nfsd4_open *
|
|
|
unsigned int hashval = stateid_hashval(sop->so_id, fp->fi_id);
|
|
|
|
|
|
INIT_LIST_HEAD(&stp->st_hash);
|
|
|
- INIT_LIST_HEAD(&stp->st_perfilestate);
|
|
|
- INIT_LIST_HEAD(&stp->st_perlockowner);
|
|
|
+ INIT_LIST_HEAD(&stp->st_perstateowner);
|
|
|
+ INIT_LIST_HEAD(&stp->st_lockowners);
|
|
|
INIT_LIST_HEAD(&stp->st_perfile);
|
|
|
list_add(&stp->st_hash, &stateid_hashtbl[hashval]);
|
|
|
- list_add(&stp->st_perfilestate, &sop->so_perfilestate);
|
|
|
+ list_add(&stp->st_perstateowner, &sop->so_stateids);
|
|
|
list_add(&stp->st_perfile, &fp->fi_stateids);
|
|
|
stp->st_stateowner = sop;
|
|
|
get_nfs4_file(fp);
|
|
@@ -1167,7 +1167,7 @@ release_stateid(struct nfs4_stateid *stp, int flags)
|
|
|
|
|
|
list_del(&stp->st_hash);
|
|
|
list_del(&stp->st_perfile);
|
|
|
- list_del(&stp->st_perfilestate);
|
|
|
+ list_del(&stp->st_perstateowner);
|
|
|
if (flags & OPEN_STATE) {
|
|
|
release_stateid_lockowners(stp);
|
|
|
stp->st_vfs_file = NULL;
|
|
@@ -1201,7 +1201,7 @@ release_state_owner(struct nfs4_stateid *stp, int flag)
|
|
|
* released by the laundromat service after the lease period
|
|
|
* to enable us to handle CLOSE replay
|
|
|
*/
|
|
|
- if (sop->so_confirmed && list_empty(&sop->so_perfilestate))
|
|
|
+ if (sop->so_confirmed && list_empty(&sop->so_stateids))
|
|
|
move_to_close_lru(sop);
|
|
|
}
|
|
|
|
|
@@ -1548,7 +1548,7 @@ find_delegation_file(struct nfs4_file *fp, stateid_t *stid)
|
|
|
{
|
|
|
struct nfs4_delegation *dp;
|
|
|
|
|
|
- list_for_each_entry(dp, &fp->fi_delegations, dl_del_perfile) {
|
|
|
+ list_for_each_entry(dp, &fp->fi_delegations, dl_perfile) {
|
|
|
if (dp->dl_stateid.si_stateownerid == stid->si_stateownerid)
|
|
|
return dp;
|
|
|
}
|
|
@@ -1892,7 +1892,7 @@ nfsd4_renew(clientid_t *clid)
|
|
|
}
|
|
|
renew_client(clp);
|
|
|
status = nfserr_cb_path_down;
|
|
|
- if (!list_empty(&clp->cl_del_perclnt)
|
|
|
+ if (!list_empty(&clp->cl_delegations)
|
|
|
&& !atomic_read(&clp->cl_callback.cb_set))
|
|
|
goto out;
|
|
|
status = nfs_ok;
|
|
@@ -2634,13 +2634,13 @@ alloc_init_lock_stateowner(unsigned int strhashval, struct nfs4_client *clp, str
|
|
|
INIT_LIST_HEAD(&sop->so_idhash);
|
|
|
INIT_LIST_HEAD(&sop->so_strhash);
|
|
|
INIT_LIST_HEAD(&sop->so_perclient);
|
|
|
- INIT_LIST_HEAD(&sop->so_perfilestate);
|
|
|
- INIT_LIST_HEAD(&sop->so_perlockowner);
|
|
|
+ INIT_LIST_HEAD(&sop->so_stateids);
|
|
|
+ INIT_LIST_HEAD(&sop->so_perstateid);
|
|
|
INIT_LIST_HEAD(&sop->so_close_lru); /* not used */
|
|
|
sop->so_time = 0;
|
|
|
list_add(&sop->so_idhash, &lock_ownerid_hashtbl[idhashval]);
|
|
|
list_add(&sop->so_strhash, &lock_ownerstr_hashtbl[strhashval]);
|
|
|
- list_add(&sop->so_perlockowner, &open_stp->st_perlockowner);
|
|
|
+ list_add(&sop->so_perstateid, &open_stp->st_lockowners);
|
|
|
sop->so_is_open_owner = 0;
|
|
|
sop->so_id = current_ownerid++;
|
|
|
sop->so_client = clp;
|
|
@@ -2664,11 +2664,11 @@ alloc_init_lock_stateid(struct nfs4_stateowner *sop, struct nfs4_file *fp, struc
|
|
|
goto out;
|
|
|
INIT_LIST_HEAD(&stp->st_hash);
|
|
|
INIT_LIST_HEAD(&stp->st_perfile);
|
|
|
- INIT_LIST_HEAD(&stp->st_perfilestate);
|
|
|
- INIT_LIST_HEAD(&stp->st_perlockowner); /* not used */
|
|
|
+ INIT_LIST_HEAD(&stp->st_perstateowner);
|
|
|
+ INIT_LIST_HEAD(&stp->st_lockowners); /* not used */
|
|
|
list_add(&stp->st_hash, &lockstateid_hashtbl[hashval]);
|
|
|
list_add(&stp->st_perfile, &fp->fi_stateids);
|
|
|
- list_add(&stp->st_perfilestate, &sop->so_perfilestate);
|
|
|
+ list_add(&stp->st_perstateowner, &sop->so_stateids);
|
|
|
stp->st_stateowner = sop;
|
|
|
get_nfs4_file(fp);
|
|
|
stp->st_file = fp;
|
|
@@ -3081,8 +3081,8 @@ nfsd4_release_lockowner(struct svc_rqst *rqstp, struct nfsd4_release_lockowner *
|
|
|
/* check for any locks held by any stateid
|
|
|
* associated with the (lock) stateowner */
|
|
|
status = nfserr_locks_held;
|
|
|
- list_for_each_entry(stp, &local->so_perfilestate,
|
|
|
- st_perfilestate) {
|
|
|
+ list_for_each_entry(stp, &local->so_stateids,
|
|
|
+ st_perstateowner) {
|
|
|
if (check_for_locks(stp->st_vfs_file, local))
|
|
|
goto out;
|
|
|
}
|