diff --git a/kmod/src/counters.h b/kmod/src/counters.h index 9d5db004..cc4fc7a8 100644 --- a/kmod/src/counters.h +++ b/kmod/src/counters.h @@ -115,11 +115,12 @@ EXPAND_COUNTER(trans_commit_sync_fs) \ EXPAND_COUNTER(trans_commit_timer) \ EXPAND_COUNTER(trans_level0_seg_write_bytes) \ - EXPAND_COUNTER(trans_level0_seg_writes) - + EXPAND_COUNTER(trans_level0_seg_writes) \ + EXPAND_COUNTER(trans_write_item) \ + EXPAND_COUNTER(trans_write_deletion_item) #define FIRST_COUNTER btree_read_error -#define LAST_COUNTER trans_level0_seg_writes +#define LAST_COUNTER trans_write_deletion_item #undef EXPAND_COUNTER #define EXPAND_COUNTER(which) struct percpu_counter which; diff --git a/kmod/src/item.c b/kmod/src/item.c index 77cd5057..b6432f19 100644 --- a/kmod/src/item.c +++ b/kmod/src/item.c @@ -1734,6 +1734,11 @@ int scoutfs_item_dirty_seg(struct super_block *sb, struct scoutfs_segment *seg) /* trans reservation should have limited dirty */ BUG_ON(!appended); + if (item->deletion) + scoutfs_inc_counter(sb, trans_write_deletion_item); + else + scoutfs_inc_counter(sb, trans_write_item); + clear_item_dirty(sb, cac, item); del = item;