diff options
Diffstat (limited to 'libbcachefs/error.c')
-rw-r--r-- | libbcachefs/error.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libbcachefs/error.c b/libbcachefs/error.c index e33f3166..a16f55d9 100644 --- a/libbcachefs/error.c +++ b/libbcachefs/error.c @@ -394,7 +394,7 @@ int bch2_fsck_err_opt(struct bch_fs *c, flags |= fsck_flags_extra[err]; if (test_bit(BCH_FS_in_fsck, &c->flags) || - test_bit(BCH_FS_in_recovery, &c->flags)) { + c->opts.fix_errors != FSCK_FIX_exit) { if (!(flags & (FSCK_CAN_FIX|FSCK_CAN_IGNORE))) return bch_err_throw(c, fsck_repair_unimplemented); @@ -468,10 +468,10 @@ int __bch2_fsck_err(struct bch_fs *c, if ((flags & FSCK_ERR_SILENT) || test_bit(err, c->sb.errors_silent)) { - ret = flags & FSCK_CAN_FIX + set_bit(BCH_FS_errors_fixed_silent, &c->flags); + return flags & FSCK_CAN_FIX ? bch_err_throw(c, fsck_fix) : bch_err_throw(c, fsck_ignore); - goto err; } printbuf_indent_add_nextline(out, 2); |