btrfs-progs: refine btrfs-debug-tree error prompt when a mount point given
authorGui Hecheng <guihc.fnst@cn.fujitsu.com>
Thu, 25 Dec 2014 01:16:35 +0000 (09:16 +0800)
committerDavid Sterba <dsterba@suse.cz>
Mon, 29 Dec 2014 17:10:59 +0000 (18:10 +0100)
Now, if exec:
# btrfs-debug-tree <mount_point>
it echos:
: Superblock bytenr is larger than device size

But it is quite misleading, because it is a valid btrfs.
In this case, we should tell the developer to provide a block device.

After apply:
: '<mount_point>' is not a block device

Signed-off-by: Gui Hecheng <guihc.fnst@cn.fujitsu.com>
Reviewed-by: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
btrfs-debug-tree.c

index e46500d..9cdb35f 100644 (file)
@@ -179,6 +179,12 @@ int main(int ac, char **av)
        if (check_argc_exact(ac, 1))
                print_usage();
 
+       ret = check_arg_type(av[optind]);
+       if (ret != BTRFS_ARG_BLKDEV) {
+               fprintf(stderr, "'%s' is not a block device\n", av[optind]);
+               exit(1);
+       }
+
        info = open_ctree_fs_info(av[optind], 0, 0, OPEN_CTREE_PARTIAL);
        if (!info) {
                fprintf(stderr, "unable to open %s\n", av[optind]);