bcachefs: Switch reconstruct_alloc to a mount option

Right now this is the only way of repairing bucket gens in the future

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
Kent Overstreet 2019-08-28 13:20:31 -04:00 committed by Kent Overstreet
parent 05cf02b5a1
commit ad7e137ebc
3 changed files with 7 additions and 4 deletions

View File

@ -285,9 +285,7 @@ do { \
"Force reads to use the reconstruct path, when reading" \
"from erasure coded extents") \
BCH_DEBUG_PARAM(test_restart_gc, \
"Test restarting mark and sweep gc when bucket gens change")\
BCH_DEBUG_PARAM(test_reconstruct_alloc, \
"Test reconstructing the alloc btree")
"Test restarting mark and sweep gc when bucket gens change")
#define BCH_DEBUG_PARAMS_ALL() BCH_DEBUG_PARAMS_ALWAYS() BCH_DEBUG_PARAMS_DEBUG()

View File

@ -258,6 +258,11 @@ enum opt_type {
OPT_BOOL(), \
NO_SB_OPT, false, \
NULL, "Don\'t start filesystem, only open devices") \
x(reconstruct_alloc, u8, \
OPT_MOUNT, \
OPT_BOOL(), \
NO_SB_OPT, false, \
NULL, "Reconstruct alloc btree") \
x(version_upgrade, u8, \
OPT_MOUNT, \
OPT_BOOL(), \

View File

@ -659,7 +659,7 @@ static int read_btree_roots(struct bch_fs *c)
continue;
if (i == BTREE_ID_ALLOC &&
test_reconstruct_alloc(c)) {
c->opts.reconstruct_alloc) {
c->sb.compat &= ~(1ULL << BCH_COMPAT_FEAT_ALLOC_INFO);
continue;
}