an alternative way of mounting multiple-device filesystem without the need for
prior scanning. See the mount option 'device'.
-*stats* [-zs] <path>|<device>::
+*stats* [options] <path>|<device>::
Read and print the device IO error statistics for all devices of the given
filesystem identified by <path> or for a single <device>. The filesystem must
be mounted. See section *DEVICE STATS* for more information about the reported
-z|--reset::::
Print the stats and reset the values to zero afterwards.
--s::::
-Set bit 6 of the return-code if any error statistics are non-zero.
+-c|--check::::
+Check if the stats are all zeros and return 0 it it is so. Set bit 6 of the
+return code if any of the statistics is no-zero. The error values is 65 if
+reading stats from at least one device failed, otherwise it's 64.
*usage* [options] <path> [<path>...]::
Show detailed information about internal allocations in devices.
"Show device IO error statistics for all devices of the given filesystem",
"identified by PATH or DEVICE. The filesystem must be mounted.",
"",
+ "-c|--check return non-zero if any stat counter is not zero",
"-z|--reset show current stats and reset values to zero",
- "-s return non-zero if any stat counter is not zero",
NULL
};
int fdmnt;
int i;
int err = 0;
- int status = 0;
+ int check = 0;
__u64 flags = 0;
DIR *dirstream = NULL;
{NULL, 0, NULL, 0}
};
- c = getopt_long(argc, argv, "zs", long_options, NULL);
+ c = getopt_long(argc, argv, "cz", long_options, NULL);
if (c < 0)
break;
switch (c) {
+ case 'c':
+ check = 1;
+ break;
case 'z':
flags = BTRFS_DEV_STATS_RESET;
break;
- case 's':
- status = 1;
- break;
case '?':
default:
usage(cmd_device_stats_usage);
dev_stats[j].name,
(unsigned long long)
args.values[dev_stats[j].num]);
- if ((status == 1)
+ if ((check == 1)
&& (args.values[dev_stats[j].num] > 0))
err |= 64;
}