aboutsummaryrefslogtreecommitdiffstats
path: root/cmds-device.c
diff options
context:
space:
mode:
authorZhao Lei <zhaolei@cn.fujitsu.com>2015-10-12 21:23:02 +0800
committerDavid Sterba <dsterba@suse.com>2015-11-02 09:35:01 +0100
commit078618d82220e84609cffd074655faafbada4c24 (patch)
treebfc17db74656dd73489265f35104e5ea40a946da /cmds-device.c
parent5e1a77c45c8447974fe8a315afc0659ce3f64f4c (diff)
downloadbtrfs-progs-078618d82220e84609cffd074655faafbada4c24.tar.gz
btrfs-progs-078618d82220e84609cffd074655faafbada4c24.tar.xz
btrfs-progs-078618d82220e84609cffd074655faafbada4c24.zip
btrfs-progs: use btrfs_open_dir in open_path_or_dev_mnt
Use btrfs_open_dir() in open_path_or_dev_mnt() to make the function return error when target is neither block device nor btrfs mount point. Also add "verbose" argument to let function output common error message instead of putting duplicated lines in caller. Before patch: # ./btrfs device stats /mnt/tmp1 ERROR: getting dev info for devstats failed: Inappropriate ioctl for device # ./btrfs replace start /dev/vdd /dev/vde /mnt/tmp1 ERROR: ioctl(DEV_REPLACE_STATUS) failed on "/mnt/tmp1": Inappropriate ioctl for device After patch: # ./btrfs device stats /mnt/tmp1 ERROR: not a btrfs filesystem: /mnt/tmp1 # ./btrfs replace start /dev/vdd /dev/vde /mnt/tmp1 ERROR: not a btrfs filesystem: /mnt/tmp1 Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'cmds-device.c')
-rw-r--r--cmds-device.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/cmds-device.c b/cmds-device.c
index 5f2b952..a9354f5 100644
--- a/cmds-device.c
+++ b/cmds-device.c
@@ -385,18 +385,9 @@ static int cmd_device_stats(int argc, char **argv)
dev_path = argv[optind];
- fdmnt = open_path_or_dev_mnt(dev_path, &dirstream);
-
- if (fdmnt < 0) {
- if (errno == EINVAL)
- fprintf(stderr,
- "ERROR: '%s' is not a mounted btrfs device\n",
- dev_path);
- else
- fprintf(stderr, "ERROR: can't access '%s': %s\n",
- dev_path, strerror(errno));
+ fdmnt = open_path_or_dev_mnt(dev_path, &dirstream, 1);
+ if (fdmnt < 0)
return 1;
- }
ret = get_fs_info(dev_path, &fi_args, &di_args);
if (ret) {