forked from luck/tmp_suning_uos_patched
nfsd: rename cl_refcount
Rename this to a more descriptive name: it counts the number of in-progress rpc's referencing this client. Next I'm going to add a second refcount with a slightly different use. Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
parent
2c830dd720
commit
14ed14cc7c
|
@ -138,7 +138,7 @@ static __be32 get_client_locked(struct nfs4_client *clp)
|
|||
|
||||
if (is_client_expired(clp))
|
||||
return nfserr_expired;
|
||||
atomic_inc(&clp->cl_refcount);
|
||||
atomic_inc(&clp->cl_rpc_users);
|
||||
return nfs_ok;
|
||||
}
|
||||
|
||||
|
@ -170,7 +170,7 @@ static void put_client_renew_locked(struct nfs4_client *clp)
|
|||
|
||||
lockdep_assert_held(&nn->client_lock);
|
||||
|
||||
if (!atomic_dec_and_test(&clp->cl_refcount))
|
||||
if (!atomic_dec_and_test(&clp->cl_rpc_users))
|
||||
return;
|
||||
if (!is_client_expired(clp))
|
||||
renew_client_locked(clp);
|
||||
|
@ -180,7 +180,7 @@ static void put_client_renew(struct nfs4_client *clp)
|
|||
{
|
||||
struct nfsd_net *nn = net_generic(clp->net, nfsd_net_id);
|
||||
|
||||
if (!atomic_dec_and_lock(&clp->cl_refcount, &nn->client_lock))
|
||||
if (!atomic_dec_and_lock(&clp->cl_rpc_users, &nn->client_lock))
|
||||
return;
|
||||
if (!is_client_expired(clp))
|
||||
renew_client_locked(clp);
|
||||
|
@ -1857,7 +1857,7 @@ static struct nfs4_client *alloc_client(struct xdr_netobj name)
|
|||
clp->cl_name.len = name.len;
|
||||
INIT_LIST_HEAD(&clp->cl_sessions);
|
||||
idr_init(&clp->cl_stateids);
|
||||
atomic_set(&clp->cl_refcount, 0);
|
||||
atomic_set(&clp->cl_rpc_users, 0);
|
||||
clp->cl_cb_state = NFSD4_CB_UNKNOWN;
|
||||
INIT_LIST_HEAD(&clp->cl_idhash);
|
||||
INIT_LIST_HEAD(&clp->cl_openowners);
|
||||
|
@ -1936,7 +1936,7 @@ unhash_client(struct nfs4_client *clp)
|
|||
|
||||
static __be32 mark_client_expired_locked(struct nfs4_client *clp)
|
||||
{
|
||||
if (atomic_read(&clp->cl_refcount))
|
||||
if (atomic_read(&clp->cl_rpc_users))
|
||||
return nfserr_jukebox;
|
||||
unhash_client_locked(clp);
|
||||
return nfs_ok;
|
||||
|
@ -4092,7 +4092,7 @@ static __be32 lookup_clientid(clientid_t *clid,
|
|||
spin_unlock(&nn->client_lock);
|
||||
return nfserr_expired;
|
||||
}
|
||||
atomic_inc(&found->cl_refcount);
|
||||
atomic_inc(&found->cl_rpc_users);
|
||||
spin_unlock(&nn->client_lock);
|
||||
|
||||
/* Cache the nfs4_client in cstate! */
|
||||
|
@ -6584,7 +6584,7 @@ nfs4_check_open_reclaim(clientid_t *clid,
|
|||
static inline void
|
||||
put_client(struct nfs4_client *clp)
|
||||
{
|
||||
atomic_dec(&clp->cl_refcount);
|
||||
atomic_dec(&clp->cl_rpc_users);
|
||||
}
|
||||
|
||||
static struct nfs4_client *
|
||||
|
@ -6702,7 +6702,7 @@ nfsd_inject_add_lock_to_list(struct nfs4_ol_stateid *lst,
|
|||
return;
|
||||
|
||||
lockdep_assert_held(&nn->client_lock);
|
||||
atomic_inc(&clp->cl_refcount);
|
||||
atomic_inc(&clp->cl_rpc_users);
|
||||
list_add(&lst->st_locks, collect);
|
||||
}
|
||||
|
||||
|
@ -6731,7 +6731,7 @@ static u64 nfsd_foreach_client_lock(struct nfs4_client *clp, u64 max,
|
|||
* Despite the fact that these functions deal
|
||||
* with 64-bit integers for "count", we must
|
||||
* ensure that it doesn't blow up the
|
||||
* clp->cl_refcount. Throw a warning if we
|
||||
* clp->cl_rpc_users. Throw a warning if we
|
||||
* start to approach INT_MAX here.
|
||||
*/
|
||||
WARN_ON_ONCE(count == (INT_MAX / 2));
|
||||
|
@ -6855,7 +6855,7 @@ nfsd_foreach_client_openowner(struct nfs4_client *clp, u64 max,
|
|||
if (func) {
|
||||
func(oop);
|
||||
if (collect) {
|
||||
atomic_inc(&clp->cl_refcount);
|
||||
atomic_inc(&clp->cl_rpc_users);
|
||||
list_add(&oop->oo_perclient, collect);
|
||||
}
|
||||
}
|
||||
|
@ -6863,7 +6863,7 @@ nfsd_foreach_client_openowner(struct nfs4_client *clp, u64 max,
|
|||
/*
|
||||
* Despite the fact that these functions deal with
|
||||
* 64-bit integers for "count", we must ensure that
|
||||
* it doesn't blow up the clp->cl_refcount. Throw a
|
||||
* it doesn't blow up the clp->cl_rpc_users. Throw a
|
||||
* warning if we start to approach INT_MAX here.
|
||||
*/
|
||||
WARN_ON_ONCE(count == (INT_MAX / 2));
|
||||
|
@ -6993,7 +6993,7 @@ static u64 nfsd_find_all_delegations(struct nfs4_client *clp, u64 max,
|
|||
if (dp->dl_time != 0)
|
||||
continue;
|
||||
|
||||
atomic_inc(&clp->cl_refcount);
|
||||
atomic_inc(&clp->cl_rpc_users);
|
||||
WARN_ON(!unhash_delegation_locked(dp));
|
||||
list_add(&dp->dl_recall_lru, victims);
|
||||
}
|
||||
|
@ -7001,7 +7001,7 @@ static u64 nfsd_find_all_delegations(struct nfs4_client *clp, u64 max,
|
|||
/*
|
||||
* Despite the fact that these functions deal with
|
||||
* 64-bit integers for "count", we must ensure that
|
||||
* it doesn't blow up the clp->cl_refcount. Throw a
|
||||
* it doesn't blow up the clp->cl_rpc_users. Throw a
|
||||
* warning if we start to approach INT_MAX here.
|
||||
*/
|
||||
WARN_ON_ONCE(count == (INT_MAX / 2));
|
||||
|
|
|
@ -347,7 +347,7 @@ struct nfs4_client {
|
|||
struct nfsd4_clid_slot cl_cs_slot; /* create_session slot */
|
||||
u32 cl_exchange_flags;
|
||||
/* number of rpc's in progress over an associated session: */
|
||||
atomic_t cl_refcount;
|
||||
atomic_t cl_rpc_users;
|
||||
struct nfs4_op_map cl_spo_must_allow;
|
||||
|
||||
/* for nfs41 callbacks */
|
||||
|
|
Loading…
Reference in New Issue
Block a user