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))
|
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));
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
Loading…
Reference in New Issue
Block a user