summaryrefslogtreecommitdiff
path: root/cmds-replace.c
diff options
context:
space:
mode:
authorWang Shilong <wangsl.fnst@cn.fujitsu.com>2013-09-04 23:22:36 +0800
committerChris Mason <chris.mason@fusionio.com>2013-10-16 08:20:42 -0400
commit2e8956a55f999c59525035a7f20b400a9bde22c6 (patch)
tree60eeb3a465dad03baaca718fe32cefe1a499c17c /cmds-replace.c
parent0497edae9fa06cfd937522c1374af022161bda15 (diff)
Btrfs-progs: fix magic return value in cmds-replace.c
There are 3 kinds of return values in replace cancel: 0: cancel successfully. 1: usage or syntal errors 2: cancel a not started or finished replacing operations. 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>
Diffstat (limited to 'cmds-replace.c')
-rw-r--r--cmds-replace.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/cmds-replace.c b/cmds-replace.c
index 1df719b6..d9b0940e 100644
--- a/cmds-replace.c
+++ b/cmds-replace.c
@@ -324,7 +324,7 @@ leave_with_error:
close(fdsrcdev);
if (fddstdev != -1)
close(fddstdev);
- return -1;
+ return 1;
}
static const char *const cmd_status_replace_usage[] = {
@@ -367,12 +367,12 @@ static int cmd_status_replace(int argc, char **argv)
if (fd < 0) {
fprintf(stderr, "ERROR: can't access \"%s\": %s\n",
path, strerror(e));
- return -1;
+ return 1;
}
ret = print_replace_status(fd, path, once);
close_file_or_dir(fd, dirstream);
- return ret;
+ return !!ret;
}
static int print_replace_status(int fd, const char *path, int once)
@@ -530,7 +530,7 @@ static int cmd_cancel_replace(int argc, char **argv)
if (fd < 0) {
fprintf(stderr, "ERROR: can't access \"%s\": %s\n",
path, strerror(errno));
- return -1;
+ return 1;
}
args.cmd = BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL;
@@ -541,9 +541,13 @@ static int cmd_cancel_replace(int argc, char **argv)
fprintf(stderr, "ERROR: ioctl(DEV_REPLACE_CANCEL) failed on \"%s\": %s, %s\n",
path, strerror(e),
replace_dev_result2string(args.result));
- return ret;
+ return 1;
+ }
+ if (args.result == BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED) {
+ printf("INFO: ioctl(DEV_REPLACE_CANCEL)\"%s\": %s\n",
+ path, replace_dev_result2string(args.result));
+ return 2;
}
-
return 0;
}