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>
This commit is contained in:
parent
0497edae9f
commit
2e8956a55f
|
@ -324,7 +324,7 @@ leave_with_error:
|
||||||
close(fdsrcdev);
|
close(fdsrcdev);
|
||||||
if (fddstdev != -1)
|
if (fddstdev != -1)
|
||||||
close(fddstdev);
|
close(fddstdev);
|
||||||
return -1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char *const cmd_status_replace_usage[] = {
|
static const char *const cmd_status_replace_usage[] = {
|
||||||
|
@ -367,12 +367,12 @@ static int cmd_status_replace(int argc, char **argv)
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
fprintf(stderr, "ERROR: can't access \"%s\": %s\n",
|
fprintf(stderr, "ERROR: can't access \"%s\": %s\n",
|
||||||
path, strerror(e));
|
path, strerror(e));
|
||||||
return -1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = print_replace_status(fd, path, once);
|
ret = print_replace_status(fd, path, once);
|
||||||
close_file_or_dir(fd, dirstream);
|
close_file_or_dir(fd, dirstream);
|
||||||
return ret;
|
return !!ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int print_replace_status(int fd, const char *path, int once)
|
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) {
|
if (fd < 0) {
|
||||||
fprintf(stderr, "ERROR: can't access \"%s\": %s\n",
|
fprintf(stderr, "ERROR: can't access \"%s\": %s\n",
|
||||||
path, strerror(errno));
|
path, strerror(errno));
|
||||||
return -1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
args.cmd = BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL;
|
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",
|
fprintf(stderr, "ERROR: ioctl(DEV_REPLACE_CANCEL) failed on \"%s\": %s, %s\n",
|
||||||
path, strerror(e),
|
path, strerror(e),
|
||||||
replace_dev_result2string(args.result));
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue