summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2018-07-20 23:42:06 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2018-07-20 23:42:06 -0400
commitb5094ee8546ab9dbe099ee5fb0ef91af16b47f96 (patch)
tree0e7b85b480f2b982771036210825c8c122961b9a
parent76a549d82d1383c02e4aa6f7d9eda2df9f2196b3 (diff)
Return errors from fsck properly
-rw-r--r--cmd_fsck.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/cmd_fsck.c b/cmd_fsck.c
index 93746ac0..d16760ac 100644
--- a/cmd_fsck.c
+++ b/cmd_fsck.c
@@ -23,7 +23,7 @@ static void usage(void)
int cmd_fsck(int argc, char *argv[])
{
struct bch_opts opts = bch2_opts_empty();
- int opt;
+ int opt, ret = 0;
opt_set(opts, degraded, true);
opt_set(opts, fix_errors, FSCK_OPT_ASK);
@@ -60,6 +60,11 @@ int cmd_fsck(int argc, char *argv[])
if (IS_ERR(c))
die("error opening %s: %s", argv[0], strerror(-PTR_ERR(c)));
+ if (test_bit(BCH_FS_FSCK_FIXED_ERRORS, &c->flags))
+ ret = 2;
+ if (test_bit(BCH_FS_FSCK_UNFIXED_ERRORS, &c->flags))
+ ret = 4;
+
bch2_fs_stop(c);
- return 0;
+ return ret;
}