From 925aaf0b874fd92aec1b34f42d23987f65205ff9 Mon Sep 17 00:00:00 2001 From: "Bryn M. Reeves" Date: Thu, 1 Nov 2018 16:49:05 +0000 Subject: [PATCH] dmsetup: fix stats report command output Since the stats handle is neither bound nor listed before the attempt to call dm_stats_get_nr_regions(), it will always return zero: this prevents reporting of any dmstats regions on any device. Remove the dm_stats_get_nr_regions() check and instead rely on the correct return status from dm_stats_populate() which only returns 0 in the case that there are regions to inspect (and which logs a specific error for all other cases). Reported-by: Bryan Gurney --- libdm/dm-tools/dmsetup.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/libdm/dm-tools/dmsetup.c b/libdm/dm-tools/dmsetup.c index 835fdcdc7..93714ac1e 100644 --- a/libdm/dm-tools/dmsetup.c +++ b/libdm/dm-tools/dmsetup.c @@ -914,17 +914,13 @@ static int _display_info_cols(struct dm_task *dmt, struct dm_info *info) if (!(obj.stats = dm_stats_create(DM_STATS_PROGRAM_ID))) goto_out; - if (!dm_stats_get_nr_regions(obj.stats)) { - log_debug("Skipping %s with no regions.", dm_task_get_name(dmt)); + dm_stats_bind_devno(obj.stats, info->major, info->minor); + + if (!dm_stats_populate(obj.stats, _program_id, DM_STATS_REGIONS_ALL)) { r = 1; goto out; } - dm_stats_bind_devno(obj.stats, info->major, info->minor); - - if (!dm_stats_populate(obj.stats, _program_id, DM_STATS_REGIONS_ALL)) - goto_out; - /* Update timestamps and handle end-of-interval accounting. */ _update_interval_times();