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:
J. Bruce Fields 2019-03-20 11:54:11 -04:00
parent 2c830dd720
commit 14ed14cc7c
2 changed files with 14 additions and 14 deletions

View File

@ -138,7 +138,7 @@ static __be32 get_client_locked(struct nfs4_client *clp)
if (is_client_expired(clp)) if (is_client_expired(clp))
return nfserr_expired; return nfserr_expired;
atomic_inc(&clp->cl_refcount); atomic_inc(&clp->cl_rpc_users);
return nfs_ok; return nfs_ok;
} }
@ -170,7 +170,7 @@ static void put_client_renew_locked(struct nfs4_client *clp)
lockdep_assert_held(&nn->client_lock); lockdep_assert_held(&nn->client_lock);
if (!atomic_dec_and_test(&clp->cl_refcount)) if (!atomic_dec_and_test(&clp->cl_rpc_users))
return; return;
if (!is_client_expired(clp)) if (!is_client_expired(clp))
renew_client_locked(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); 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; return;
if (!is_client_expired(clp)) if (!is_client_expired(clp))
renew_client_locked(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; clp->cl_name.len = name.len;
INIT_LIST_HEAD(&clp->cl_sessions); INIT_LIST_HEAD(&clp->cl_sessions);
idr_init(&clp->cl_stateids); 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; clp->cl_cb_state = NFSD4_CB_UNKNOWN;
INIT_LIST_HEAD(&clp->cl_idhash); INIT_LIST_HEAD(&clp->cl_idhash);
INIT_LIST_HEAD(&clp->cl_openowners); 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) 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; return nfserr_jukebox;
unhash_client_locked(clp); unhash_client_locked(clp);
return nfs_ok; return nfs_ok;
@ -4092,7 +4092,7 @@ static __be32 lookup_clientid(clientid_t *clid,
spin_unlock(&nn->client_lock); spin_unlock(&nn->client_lock);
return nfserr_expired; return nfserr_expired;
} }
atomic_inc(&found->cl_refcount); atomic_inc(&found->cl_rpc_users);
spin_unlock(&nn->client_lock); spin_unlock(&nn->client_lock);
/* Cache the nfs4_client in cstate! */ /* Cache the nfs4_client in cstate! */
@ -6584,7 +6584,7 @@ nfs4_check_open_reclaim(clientid_t *clid,
static inline void static inline void
put_client(struct nfs4_client *clp) put_client(struct nfs4_client *clp)
{ {
atomic_dec(&clp->cl_refcount); atomic_dec(&clp->cl_rpc_users);
} }
static struct nfs4_client * static struct nfs4_client *
@ -6702,7 +6702,7 @@ nfsd_inject_add_lock_to_list(struct nfs4_ol_stateid *lst,
return; return;
lockdep_assert_held(&nn->client_lock); lockdep_assert_held(&nn->client_lock);
atomic_inc(&clp->cl_refcount); atomic_inc(&clp->cl_rpc_users);
list_add(&lst->st_locks, collect); 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 * Despite the fact that these functions deal
* with 64-bit integers for "count", we must * with 64-bit integers for "count", we must
* ensure that it doesn't blow up the * 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. * start to approach INT_MAX here.
*/ */
WARN_ON_ONCE(count == (INT_MAX / 2)); WARN_ON_ONCE(count == (INT_MAX / 2));
@ -6855,7 +6855,7 @@ nfsd_foreach_client_openowner(struct nfs4_client *clp, u64 max,
if (func) { if (func) {
func(oop); func(oop);
if (collect) { if (collect) {
atomic_inc(&clp->cl_refcount); atomic_inc(&clp->cl_rpc_users);
list_add(&oop->oo_perclient, collect); 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 * Despite the fact that these functions deal with
* 64-bit integers for "count", we must ensure that * 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. * warning if we start to approach INT_MAX here.
*/ */
WARN_ON_ONCE(count == (INT_MAX / 2)); 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) if (dp->dl_time != 0)
continue; continue;
atomic_inc(&clp->cl_refcount); atomic_inc(&clp->cl_rpc_users);
WARN_ON(!unhash_delegation_locked(dp)); WARN_ON(!unhash_delegation_locked(dp));
list_add(&dp->dl_recall_lru, victims); 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 * Despite the fact that these functions deal with
* 64-bit integers for "count", we must ensure that * 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. * warning if we start to approach INT_MAX here.
*/ */
WARN_ON_ONCE(count == (INT_MAX / 2)); WARN_ON_ONCE(count == (INT_MAX / 2));

View File

@ -347,7 +347,7 @@ struct nfs4_client {
struct nfsd4_clid_slot cl_cs_slot; /* create_session slot */ struct nfsd4_clid_slot cl_cs_slot; /* create_session slot */
u32 cl_exchange_flags; u32 cl_exchange_flags;
/* number of rpc's in progress over an associated session: */ /* 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; struct nfs4_op_map cl_spo_must_allow;
/* for nfs41 callbacks */ /* for nfs41 callbacks */