summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmds-replace.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/cmds-replace.c b/cmds-replace.c
index 47a8e1c0..c777f1c9 100644
--- a/cmds-replace.c
+++ b/cmds-replace.c
@@ -417,7 +417,6 @@ static int print_replace_status(int fd, const char *path, int once)
return ret;
}
- status = &args.status;
if (args.result != BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR) {
fprintf(stderr, "ERROR: ioctl(DEV_REPLACE_STATUS) on \"%s\" returns error: %s\n",
path,
@@ -425,6 +424,8 @@ static int print_replace_status(int fd, const char *path, int once)
return -1;
}
+ status = &args.status;
+
skip_stats = 0;
num_chars = 0;
switch (status->replace_state) {
@@ -469,12 +470,10 @@ static int print_replace_status(int fd, const char *path, int once)
printf("Never started");
break;
default:
- prevent_loop = 1;
fprintf(stderr,
- "Unknown btrfs dev replace status:%llu",
- status->replace_state);
- ret = -EINVAL;
- break;
+ "ERROR: ioctl(DEV_REPLACE_STATUS) on \"%s\" got unknown status: %llu\n",
+ path, status->replace_state);
+ return -EINVAL;
}
if (!skip_stats)
@@ -483,9 +482,9 @@ static int print_replace_status(int fd, const char *path, int once)
(unsigned long long)status->num_write_errors,
(unsigned long long)
status->num_uncorrectable_read_errors);
- if (once || prevent_loop || ret) {
+ if (once || prevent_loop) {
printf("\n");
- return ret;
+ break;
}
fflush(stdout);