When 'btrfs replace status' encounters an unknown dev replace status, it
will cause an assert, which is somewhat overkilled and can be replaced
with a normal error message.
Signed-off-by: Qu Wenruo <quwenruo@xxxxxxxxxxxxxx>
---
cmds-replace.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/cmds-replace.c b/cmds-replace.c
index 645dc98..9eb981b 100644
--- a/cmds-replace.c
+++ b/cmds-replace.c
@@ -449,7 +449,10 @@ static int print_replace_status(int fd, const char *path, int once)
break;
default:
prevent_loop = 1;
- assert(0);
+ fprintf(stderr,
+ "Unknown btrfs dev replace status:%llu",
+ status->replace_state);
+ ret = -EINVAL;
break;
}
@@ -459,9 +462,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) {
+ if (once || prevent_loop || ret) {
printf("\n");
- return 0;
+ return ret;
}
fflush(stdout);
--
1.9.2
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html