dm-dedup: status function
RFC PATCH 9/10 dm-dedup: status function
The status function prints various statistics about a deduplication target instance.
Signed-off-by Vasily Tarasov <[email protected]>
--- drivers/md/dm-dedup-target.c | 34 ++++++++++++++++++++++++++++++++++ 1 files changed, 34 insertions(+), 0 deletions(-)
drivers/md/dm-dedup-target.c +34 -0
@@ -682,6 +682,39 @@ static void dm_dedup_dtr_fn(struct dm_target *ti)kfree (dc); } +static void dm_dedup_status_fn (struct dm_target *ti,status_type_t status_type, +unsigned status_flags,char *result,unsigned maxlen) +{ +struct dedup_config *dc = ti->private; +uint64_t data_total_block_count; +uint64_t data_used_block_count; +uint64_t data_free_block_count; +uint64_t data_actual_block_count; +int sz =0 ; + +switch (status_type) { +case STATUSTYPE_INFO : +case STATUSTYPE_TABLE : + data_used_block_count = dc->physical_block_counter; + data_actual_block_count = dc->logical_block_counter; + data_total_block_count = dc->pblocks; + + data_free_block_count = + data_total_block_count - data_used_block_count; + +DMEMIT ("%llu %llu %llu %llu" , + data_total_block_count, data_free_block_count, + data_used_block_count, data_actual_block_count); + +DMEMIT ("%u %s %s" , dc->block_size, + dc->data_dev->name, dc->metadata_dev->name); + +DMEMIT ("%llu %llu %llu %llu %llu %llu" , + dc->writes, dc->uniqwrites, dc->dupwrites, + dc->reads_on_writes, dc->overwrites, dc->newwrites); + } +} +static int dm_dedup_endio_fn (struct dm_target *ti,struct bio *bio,int error) {if (error ||bio_data_dir (bio) !=READ )
@@ -699,6 +732,7 @@ static struct target_type dm_dedup_target = { .dtr = dm_dedup_dtr_fn, .map = dm_dedup_map_fn, .end_io = dm_dedup_endio_fn, + .status = dm_dedup_status_fn, };static int __init dm_dedup_init (void )
Signature · 1 line
1.7.1