Update pbat stats in pbat_alloc/pbat_flush, not lbatview_elem_realloc

This commit is contained in:
Tom Marshall 2019-11-17 04:41:12 +01:00
parent b169a0fbcc
commit 79eaf7dc7c
2 changed files with 19 additions and 13 deletions

View File

@ -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;
}

View File

@ -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;