summaryrefslogtreecommitdiff
path: root/fs/bcachefs/error.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2024-01-01 03:41:45 +0300
committerKent Overstreet <kent.overstreet@linux.dev>2024-01-06 07:24:20 +0300
commitd55ddf6e7a81e1e72b2f73c3cca836a6961c68af (patch)
tree64236e2119de36ca0d778ac2870f4994621ccfbb /fs/bcachefs/error.c
parent1f34c21bc685f6bd43383aefcb85a9cf604d439a (diff)
downloadlinux-d55ddf6e7a81e1e72b2f73c3cca836a6961c68af.tar.xz
bcachefs: Online fsck can now fix errors
BCH_FS_fsck_done -> BCH_FS_fsck_running; set when we might be fixing fsck errors. Also; set fix_errors to ask by default when fsck is running. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/error.c')
-rw-r--r--fs/bcachefs/error.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/bcachefs/error.c b/fs/bcachefs/error.c
index 8a8bcbcdff2a..e8200cad3ab8 100644
--- a/fs/bcachefs/error.c
+++ b/fs/bcachefs/error.c
@@ -28,7 +28,7 @@ bool bch2_inconsistent_error(struct bch_fs *c)
void bch2_topology_error(struct bch_fs *c)
{
set_bit(BCH_FS_topology_error, &c->flags);
- if (test_bit(BCH_FS_fsck_done, &c->flags))
+ if (!test_bit(BCH_FS_fsck_running, &c->flags))
bch2_inconsistent_error(c);
}
@@ -141,7 +141,7 @@ static struct fsck_err_state *fsck_err_get(struct bch_fs *c, const char *fmt)
{
struct fsck_err_state *s;
- if (test_bit(BCH_FS_fsck_done, &c->flags))
+ if (!test_bit(BCH_FS_fsck_running, &c->flags))
return NULL;
list_for_each_entry(s, &c->fsck_error_msgs, list)
@@ -223,7 +223,7 @@ int bch2_fsck_err(struct bch_fs *c,
prt_printf(out, bch2_log_msg(c, ""));
#endif
- if (test_bit(BCH_FS_fsck_done, &c->flags)) {
+ if (!test_bit(BCH_FS_fsck_running, &c->flags)) {
if (c->opts.errors != BCH_ON_ERROR_continue ||
!(flags & (FSCK_CAN_FIX|FSCK_CAN_IGNORE))) {
prt_str(out, ", shutting down");
@@ -290,7 +290,7 @@ int bch2_fsck_err(struct bch_fs *c,
bch2_print_string_as_lines(KERN_ERR, out->buf);
}
- if (!test_bit(BCH_FS_fsck_done, &c->flags) &&
+ if (test_bit(BCH_FS_fsck_running, &c->flags) &&
(ret != -BCH_ERR_fsck_fix &&
ret != -BCH_ERR_fsck_ignore))
bch_err(c, "Unable to continue, halting");