From 79eaf7dc7cd352b3e430b7334a470619a6961c1b Mon Sep 17 00:00:00 2001 From: Tom Marshall Date: Sun, 17 Nov 2019 04:41:12 +0100 Subject: [PATCH] Update pbat stats in pbat_alloc/pbat_flush, not lbatview_elem_realloc --- dm-compress/lbatview.c | 26 +++++++++++++------------- dm-compress/pbat.c | 6 ++++++ 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/dm-compress/lbatview.c b/dm-compress/lbatview.c index b9552d1..23c618c 100644 --- a/dm-compress/lbatview.c +++ b/dm-compress/lbatview.c @@ -377,21 +377,21 @@ do_free: if (!ret) { elem_lelen = __cpu_to_le32(len); lbatview_wmem(lv, elem_off, lba_elem_len_bytes(&lv->kparams->params), &elem_lelen); - mutex_lock(&lv->kstats->lock); - lv->kstats->stats.pblk_used += req_nalloc - old_nalloc; - if (old_nalloc == 0) { - if (req_nalloc != 0) { - ++lv->kstats->stats.lblk_used; - } - } - else { - if (req_nalloc == 0) { - --lv->kstats->stats.lblk_used; - } - } - mutex_unlock(&lv->kstats->lock); } + mutex_lock(&lv->kstats->lock); + if (old_nalloc == 0) { + if (cur_nalloc != 0) { + ++lv->kstats->stats.lblk_used; + } + } + else { + if (cur_nalloc == 0) { + --lv->kstats->stats.lblk_used; + } + } + mutex_unlock(&lv->kstats->lock); + mutex_unlock(&lv->lock); return ret; } diff --git a/dm-compress/pbat.c b/dm-compress/pbat.c index afe28db..2374597 100644 --- a/dm-compress/pbat.c +++ b/dm-compress/pbat.c @@ -180,6 +180,9 @@ pbat_alloc(struct pbat* pbat) pbat->last_alloc = idx; pblk = idx + zone_data_off(&pbat->kparams->params, pbat->zone); SetPageDirty(pbat->page); + mutex_lock(&pbat->kstats->lock); + ++pbat->kstats->stats.pblk_used; + mutex_unlock(&pbat->kstats->lock); out: mutex_unlock(&pbat->lock); @@ -206,6 +209,9 @@ pbat_free(struct pbat* pbat, u64 pblk) cbd_bitmap_free(pbat->buf, idx); pbat->full = false; SetPageDirty(pbat->page); + mutex_lock(&pbat->kstats->lock); + --pbat->kstats->stats.pblk_used; + mutex_unlock(&pbat->kstats->lock); mutex_unlock(&pbat->lock); return 0;