mirror of
https://github.com/torvalds/linux.git
synced 2024-11-29 07:31:29 +00:00
bcachefs: Add an option for rebuilding the replicas section
There is a bug where we cnan end up clearing the data_has field in the superblock members section, which causes us to skip reading the journal and thus journal replay fails. This option tells the recovery path to not trust those fields. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
e6d1161530
commit
f621e1521c
@ -260,6 +260,11 @@ enum opt_type {
|
|||||||
OPT_BOOL(), \
|
OPT_BOOL(), \
|
||||||
NO_SB_OPT, false, \
|
NO_SB_OPT, false, \
|
||||||
NULL, "Don't replay the journal") \
|
NULL, "Don't replay the journal") \
|
||||||
|
x(rebuild_replicas, u8, \
|
||||||
|
OPT_MOUNT, \
|
||||||
|
OPT_BOOL(), \
|
||||||
|
NO_SB_OPT, false, \
|
||||||
|
NULL, "Rebuild the superblock replicas section") \
|
||||||
x(keep_journal, u8, \
|
x(keep_journal, u8, \
|
||||||
OPT_MOUNT, \
|
OPT_MOUNT, \
|
||||||
OPT_BOOL(), \
|
OPT_BOOL(), \
|
||||||
|
@ -974,7 +974,8 @@ int bch2_fs_recovery(struct bch_fs *c)
|
|||||||
bch_info(c, "recovering from clean shutdown, journal seq %llu",
|
bch_info(c, "recovering from clean shutdown, journal seq %llu",
|
||||||
le64_to_cpu(clean->journal_seq));
|
le64_to_cpu(clean->journal_seq));
|
||||||
|
|
||||||
if (!c->replicas.entries) {
|
if (!c->replicas.entries ||
|
||||||
|
c->opts.rebuild_replicas) {
|
||||||
bch_info(c, "building replicas info");
|
bch_info(c, "building replicas info");
|
||||||
set_bit(BCH_FS_REBUILD_REPLICAS, &c->flags);
|
set_bit(BCH_FS_REBUILD_REPLICAS, &c->flags);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user