Revert "NFSD: Refactor nfsd_reply_cache_free_locked()"
This reverts commit 06ca7ef647
.
This commit is contained in:
parent
7232cc0acc
commit
4a63b68b74
1 changed files with 7 additions and 20 deletions
|
@ -110,33 +110,21 @@ nfsd_reply_cache_alloc(struct svc_rqst *rqstp, __wsum csum,
|
||||||
return rp;
|
return rp;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void nfsd_cacherep_free(struct svc_cacherep *rp)
|
|
||||||
{
|
|
||||||
if (rp->c_type == RC_REPLBUFF)
|
|
||||||
kfree(rp->c_replvec.iov_base);
|
|
||||||
kmem_cache_free(drc_slab, rp);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
nfsd_cacherep_unlink_locked(struct nfsd_net *nn, struct nfsd_drc_bucket *b,
|
nfsd_reply_cache_free_locked(struct nfsd_drc_bucket *b, struct svc_cacherep *rp,
|
||||||
struct svc_cacherep *rp)
|
struct nfsd_net *nn)
|
||||||
{
|
{
|
||||||
if (rp->c_type == RC_REPLBUFF && rp->c_replvec.iov_base)
|
if (rp->c_type == RC_REPLBUFF && rp->c_replvec.iov_base) {
|
||||||
nfsd_stats_drc_mem_usage_sub(nn, rp->c_replvec.iov_len);
|
nfsd_stats_drc_mem_usage_sub(nn, rp->c_replvec.iov_len);
|
||||||
|
kfree(rp->c_replvec.iov_base);
|
||||||
|
}
|
||||||
if (rp->c_state != RC_UNUSED) {
|
if (rp->c_state != RC_UNUSED) {
|
||||||
rb_erase(&rp->c_node, &b->rb_head);
|
rb_erase(&rp->c_node, &b->rb_head);
|
||||||
list_del(&rp->c_lru);
|
list_del(&rp->c_lru);
|
||||||
atomic_dec(&nn->num_drc_entries);
|
atomic_dec(&nn->num_drc_entries);
|
||||||
nfsd_stats_drc_mem_usage_sub(nn, sizeof(*rp));
|
nfsd_stats_drc_mem_usage_sub(nn, sizeof(*rp));
|
||||||
}
|
}
|
||||||
}
|
kmem_cache_free(drc_slab, rp);
|
||||||
|
|
||||||
static void
|
|
||||||
nfsd_reply_cache_free_locked(struct nfsd_drc_bucket *b, struct svc_cacherep *rp,
|
|
||||||
struct nfsd_net *nn)
|
|
||||||
{
|
|
||||||
nfsd_cacherep_unlink_locked(nn, b, rp);
|
|
||||||
nfsd_cacherep_free(rp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -144,9 +132,8 @@ nfsd_reply_cache_free(struct nfsd_drc_bucket *b, struct svc_cacherep *rp,
|
||||||
struct nfsd_net *nn)
|
struct nfsd_net *nn)
|
||||||
{
|
{
|
||||||
spin_lock(&b->cache_lock);
|
spin_lock(&b->cache_lock);
|
||||||
nfsd_cacherep_unlink_locked(nn, b, rp);
|
nfsd_reply_cache_free_locked(b, rp, nn);
|
||||||
spin_unlock(&b->cache_lock);
|
spin_unlock(&b->cache_lock);
|
||||||
nfsd_cacherep_free(rp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int nfsd_drc_slab_create(void)
|
int nfsd_drc_slab_create(void)
|
||||||
|
|
Loading…
Reference in a new issue