aboutsummaryrefslogtreecommitdiffstats
path: root/cmds-device.c
diff options
context:
space:
mode:
authorDavid Sterba <dsterba@suse.com>2016-01-12 13:35:50 +0100
committerDavid Sterba <dsterba@suse.com>2016-01-12 15:02:55 +0100
commitac4ec4d4f44e67fc3d1fd806cf7acbe2485cedee (patch)
tree434f39155069a914bc76d3e9fdca87a331012b7a /cmds-device.c
parent633dc6f80f201afdf5b8524ae377187d58f0ef3b (diff)
downloadbtrfs-progs-ac4ec4d4f44e67fc3d1fd806cf7acbe2485cedee.tar.gz
btrfs-progs-ac4ec4d4f44e67fc3d1fd806cf7acbe2485cedee.tar.xz
btrfs-progs-ac4ec4d4f44e67fc3d1fd806cf7acbe2485cedee.zip
btrfs-progs: check for negative return value from ioctl
Handle only negative values returned by ioctl syscalls, with exception of the device remove. It returns positive values that are handled later. Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'cmds-device.c')
-rw-r--r--cmds-device.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/cmds-device.c b/cmds-device.c
index f69d024..50c1c5d 100644
--- a/cmds-device.c
+++ b/cmds-device.c
@@ -166,6 +166,10 @@ static int _cmd_device_remove(int argc, char **argv,
}
memset(&arg, 0, sizeof(arg));
strncpy_null(arg.name, argv[i]);
+ /*
+ * Positive values are from BTRFS_ERROR_DEV_*,
+ * otherwise it's a generic error, one of errnos
+ */
res = ioctl(fdmnt, BTRFS_IOC_RM_DEV, &arg);
if (res) {
const char *msg;