bcachefs: Fix BCH_FS_ERROR flag handling
We were setting BCH_FS_ERROR on startup if the superblock was marked as containing errors, which is not what we wanted - BCH_FS_ERROR indicates whether errors have been found, so that after a successful fsck we're able to clear the error bit in the superblock. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
This commit is contained in:
parent
e5464a371d
commit
7468c4effc
@ -1632,7 +1632,7 @@ again:
|
||||
|
||||
bch2_mark_superblocks(c);
|
||||
|
||||
if (test_bit(BCH_FS_TOPOLOGY_ERROR, &c->flags) &&
|
||||
if (BCH_SB_HAS_TOPOLOGY_ERRORS(c->disk_sb.sb) &&
|
||||
!test_bit(BCH_FS_INITIAL_GC_DONE, &c->flags) &&
|
||||
c->opts.fix_errors != FSCK_OPT_NO) {
|
||||
bch_info(c, "starting topology repair pass");
|
||||
|
@ -445,16 +445,6 @@ int bch2_sb_to_fs(struct bch_fs *c, struct bch_sb *src)
|
||||
|
||||
__copy_super(&c->disk_sb, src);
|
||||
|
||||
if (BCH_SB_HAS_ERRORS(c->disk_sb.sb))
|
||||
set_bit(BCH_FS_ERROR, &c->flags);
|
||||
else
|
||||
clear_bit(BCH_FS_ERROR, &c->flags);
|
||||
|
||||
if (BCH_SB_HAS_TOPOLOGY_ERRORS(c->disk_sb.sb))
|
||||
set_bit(BCH_FS_TOPOLOGY_ERROR, &c->flags);
|
||||
else
|
||||
clear_bit(BCH_FS_TOPOLOGY_ERROR, &c->flags);
|
||||
|
||||
if (BCH_SB_INITIALIZED(c->disk_sb.sb))
|
||||
set_bit(BCH_FS_INITIALIZED, &c->flags);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user