diff options
author | David Sterba <dsterba@suse.com> | 2016-12-08 19:01:00 +0100 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2016-12-14 15:06:36 +0100 |
commit | 9468d9285ad5542855ae2963995f31036b9f943e (patch) | |
tree | 18f7b10fcac77acd0d580d78e03d1a0226fccf49 /cmds-device.c | |
parent | 76be45599a9ecffb0c33f965c44a561ffef50edf (diff) |
btrfs-progs: dev stats: use table based printing of items
Fewer lines, less code.
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'cmds-device.c')
-rw-r--r-- | cmds-device.c | 66 |
1 files changed, 23 insertions, 43 deletions
diff --git a/cmds-device.c b/cmds-device.c index a40b6166..aeaaa1d9 100644 --- a/cmds-device.c +++ b/cmds-device.c @@ -448,6 +448,19 @@ static int cmd_device_stats(int argc, char **argv) err |= 1; } else { char *canonical_path; + int j; + static const struct { + const char name[32]; + u64 num; + } dev_stats[] = { + { "write_io_errs", BTRFS_DEV_STAT_WRITE_ERRS }, + { "read_io_errs", BTRFS_DEV_STAT_READ_ERRS }, + { "flush_io_errs", BTRFS_DEV_STAT_FLUSH_ERRS }, + { "corruption_errs", + BTRFS_DEV_STAT_CORRUPTION_ERRS }, + { "generation_errs", + BTRFS_DEV_STAT_GENERATION_ERRS }, + }; canonical_path = canonicalize_path(path); @@ -462,50 +475,17 @@ static int cmd_device_stats(int argc, char **argv) "devid:%llu", args.devid); } - if (args.nr_items >= BTRFS_DEV_STAT_WRITE_ERRS + 1) { - printf("[%s].write_io_errs %llu\n", - canonical_path, - (unsigned long long) args.values[ - BTRFS_DEV_STAT_WRITE_ERRS]); - if ((status == 1) && (args.values[BTRFS_DEV_STAT_WRITE_ERRS] > 0)) { + for (j = 0; j < ARRAY_SIZE(dev_stats); j++) { + /* We got fewer items than we know */ + if (args.nr_items < dev_stats[j].num + 1) + continue; + printf("[%s].%-16s %llu\n", canonical_path, + dev_stats[j].name, + (unsigned long long) + args.values[dev_stats[j].num]); + if ((status == 1) + && (args.values[dev_stats[j].num] > 0)) err |= 64; - } - } - if (args.nr_items >= BTRFS_DEV_STAT_READ_ERRS + 1) { - printf("[%s].read_io_errs %llu\n", - canonical_path, - (unsigned long long) args.values[ - BTRFS_DEV_STAT_READ_ERRS]); - if ((status == 1) && (args.values[BTRFS_DEV_STAT_READ_ERRS] > 0)) { - err |= 64; - } - } - if (args.nr_items >= BTRFS_DEV_STAT_FLUSH_ERRS + 1) { - printf("[%s].flush_io_errs %llu\n", - canonical_path, - (unsigned long long) args.values[ - BTRFS_DEV_STAT_FLUSH_ERRS]); - if ((status == 1) && (args.values[BTRFS_DEV_STAT_FLUSH_ERRS] > 0)) { - err |= 64; - } - } - if (args.nr_items >= BTRFS_DEV_STAT_CORRUPTION_ERRS + 1) { - printf("[%s].corruption_errs %llu\n", - canonical_path, - (unsigned long long) args.values[ - BTRFS_DEV_STAT_CORRUPTION_ERRS]); - if ((status == 1) && (args.values[BTRFS_DEV_STAT_CORRUPTION_ERRS] > 0)) { - err |= 64; - } - } - if (args.nr_items >= BTRFS_DEV_STAT_GENERATION_ERRS + 1) { - printf("[%s].generation_errs %llu\n", - canonical_path, - (unsigned long long) args.values[ - BTRFS_DEV_STAT_GENERATION_ERRS]); - if ((status == 1) && (args.values[BTRFS_DEV_STAT_GENERATION_ERRS] > 0)) { - err |= 64; - } } free(canonical_path); |