summaryrefslogtreecommitdiff
path: root/cmds-device.c
diff options
context:
space:
mode:
authorAnand Jain <anand.jain@oracle.com>2013-12-18 12:07:55 +0800
committerChris Mason <clm@fb.com>2014-01-31 08:22:21 -0800
commitd89437893266332cce295c06c9d00b79aa5b4dd6 (patch)
tree415b50a673c6c6e49c5bc3403f654ddd5631b9ab /cmds-device.c
parentb5a09775c6e3dd6c842764b026e1764a057b7dfd (diff)
btrfs-progs: handle error in the btrfs_prepare_device
this patch will handle the strerror reporting of the error instead of printing errno, and also replaced the BUG_ON with the error handling Signed-off-by: Anand Jain <anand.jain@oracle.com> Signed-off-by: David Sterba <dsterba@suse.cz> Signed-off-by: Chris Mason <clm@fb.com>
Diffstat (limited to 'cmds-device.c')
-rw-r--r--cmds-device.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/cmds-device.c b/cmds-device.c
index ea20919e..5be83300 100644
--- a/cmds-device.c
+++ b/cmds-device.c
@@ -111,13 +111,11 @@ static int cmd_add_dev(int argc, char **argv)
res = btrfs_prepare_device(devfd, argv[i], 1, &dev_block_count,
0, &mixed, discard);
+ close(devfd);
if (res) {
- fprintf(stderr, "ERROR: Unable to init '%s'\n", argv[i]);
- close(devfd);
ret++;
- continue;
+ goto error_out;
}
- close(devfd);
strncpy_null(ioctl_args.name, argv[i]);
res = ioctl(fdmnt, BTRFS_IOC_ADD_DEV, &ioctl_args);
@@ -130,6 +128,7 @@ static int cmd_add_dev(int argc, char **argv)
}
+error_out:
close_file_or_dir(fdmnt, dirstream);
return !!ret;
}