1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

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 <bgurney@redhat.com>
This commit is contained in:
Bryn M. Reeves 2018-11-01 16:49:05 +00:00
parent 19f2105b87
commit 925aaf0b87

View File

@ -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))) if (!(obj.stats = dm_stats_create(DM_STATS_PROGRAM_ID)))
goto_out; goto_out;
if (!dm_stats_get_nr_regions(obj.stats)) { dm_stats_bind_devno(obj.stats, info->major, info->minor);
log_debug("Skipping %s with no regions.", dm_task_get_name(dmt));
if (!dm_stats_populate(obj.stats, _program_id, DM_STATS_REGIONS_ALL)) {
r = 1; r = 1;
goto out; 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 timestamps and handle end-of-interval accounting. */
_update_interval_times(); _update_interval_times();