btrfs-progs: fragments: use btrfs_open_dir for btrfs-fragments command
authorZhao Lei <zhaolei@cn.fujitsu.com>
Mon, 12 Oct 2015 13:23:04 +0000 (21:23 +0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 2 Nov 2015 08:35:02 +0000 (09:35 +0100)
We can use btrfs_open_dir() to check whether target dir is
in btrfs's mount point before open, instead of checking it in
deeper code, and return fuzzy error message.

Before patch:
  ./btrfs-fragments -o 123 /mnt/tmp1
  ERROR: can't perform the search

After patch:
  # ./btrfs-fragments -o 123 /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>
btrfs-fragments.c

index d742f605a6639c68144e200a271855b8fcc6a83e..17768c3ff623e8d5e14c80caa9f09b55f18376ff 100644 (file)
@@ -436,11 +436,9 @@ int main(int argc, char **argv)
 
        path = argv[optind++];
 
-       fd = open_file_or_dir(path, &dirstream);
-       if (fd < 0) {
-               fprintf(stderr, "ERROR: can't access '%s'\n", path);
+       fd = btrfs_open_dir(path, &dirstream, 1);
+       if (fd < 0)
                exit(1);
-       }
 
        if (flags == 0)
                flags = BTRFS_BLOCK_GROUP_DATA | BTRFS_BLOCK_GROUP_METADATA;