Btrfs-progs: fix magic return value in cmds-chunk.c
authorWang Shilong <wangsl.fnst@cn.fujitsu.com>
Wed, 4 Sep 2013 15:22:20 +0000 (23:22 +0800)
committerChris Mason <chris.mason@fusionio.com>
Wed, 16 Oct 2013 12:20:03 +0000 (08:20 -0400)
Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
cmds-chunk.c

index 54f057319f9f32e42c04ea00e4421befcfdc350b..115db61a49ecb1aec813facac9e455ef4eaecf7f 100644 (file)
@@ -794,13 +794,15 @@ static int scan_devices(struct recover_control *rc)
        int ret = 0;
        int fd;
        struct btrfs_device *dev;
+       int e;
 
        list_for_each_entry(dev, &rc->fs_devices->devices, dev_list) {
                fd = open(dev->name, O_RDONLY);
                if (fd < 0) {
+                       e = errno;
                        fprintf(stderr, "Failed to open device %s\n",
                                dev->name);
-                       return -1;
+                       return -e;
                }
                ret = scan_one_device(rc, fd, dev);
                close(fd);
@@ -1785,7 +1787,7 @@ int cmd_chunk_recover(int argc, char *argv[])
        ret = check_mounted(file);
        if (ret) {
                fprintf(stderr, "the device is busy\n");
-               return ret;
+               goto out;
        }
 
        ret = btrfs_recover_chunk_tree(file, verbose, yes);
@@ -1797,5 +1799,6 @@ int cmd_chunk_recover(int argc, char *argv[])
        } else {
                fprintf(stdout, "Fail to recover the chunk tree.\n");
        }
-       return ret;
+out:
+       return !!ret;
 }