mirror of
https://github.com/koverstreet/bcachefs-tools.git
synced 2025-02-23 00:00:02 +03:00
Update bcachefs sources to 8436db7aac bcachefs: Drop alloc keys from journal when -o reconstruct_alloc
This commit is contained in:
parent
96f4a81a01
commit
742dbbdbb9
@ -1 +1 @@
|
|||||||
13bb4cdf89c91a1e50d2416ede10c1f9cbaf0202
|
8436db7aac9ced2118bf19b8f1bf3682f479d17e
|
||||||
|
@ -25,6 +25,18 @@
|
|||||||
|
|
||||||
#define QSTR(n) { { { .len = strlen(n) } }, .name = n }
|
#define QSTR(n) { { { .len = strlen(n) } }, .name = n }
|
||||||
|
|
||||||
|
/* for -o reconstruct_alloc: */
|
||||||
|
static void drop_alloc_keys(struct journal_keys *keys)
|
||||||
|
{
|
||||||
|
size_t src, dst;
|
||||||
|
|
||||||
|
for (src = 0, dst = 0; src < keys->nr; src++)
|
||||||
|
if (keys->d[src].btree_id != BTREE_ID_ALLOC)
|
||||||
|
keys->d[dst++] = keys->d[src];
|
||||||
|
|
||||||
|
keys->nr = dst;
|
||||||
|
}
|
||||||
|
|
||||||
/* iterate over keys read from the journal: */
|
/* iterate over keys read from the journal: */
|
||||||
|
|
||||||
static struct journal_key *journal_key_search(struct journal_keys *journal_keys,
|
static struct journal_key *journal_key_search(struct journal_keys *journal_keys,
|
||||||
@ -930,7 +942,6 @@ static int read_btree_roots(struct bch_fs *c)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (r->error) {
|
if (r->error) {
|
||||||
__fsck_err(c, i == BTREE_ID_ALLOC
|
__fsck_err(c, i == BTREE_ID_ALLOC
|
||||||
? FSCK_CAN_IGNORE : 0,
|
? FSCK_CAN_IGNORE : 0,
|
||||||
@ -1027,6 +1038,11 @@ int bch2_fs_recovery(struct bch_fs *c)
|
|||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (c->opts.reconstruct_alloc) {
|
||||||
|
c->sb.compat &= ~(1ULL << BCH_COMPAT_FEAT_ALLOC_INFO);
|
||||||
|
drop_alloc_keys(&c->journal_keys);
|
||||||
|
}
|
||||||
|
|
||||||
ret = journal_replay_early(c, clean, &c->journal_entries);
|
ret = journal_replay_early(c, clean, &c->journal_entries);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err;
|
goto err;
|
||||||
|
Loading…
Reference in New Issue
Block a user