summaryrefslogtreecommitdiffstats
path: root/fs/bcachefs/alloc_background.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2019-05-14 14:37:11 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-22 17:08:22 -0400
commit6fb076e60d65e574756cd1a4262c1c05b750ec21 (patch)
treea230de20d70f97167f28441d0c8ee87b228a586b /fs/bcachefs/alloc_background.c
parented8413fdab6567985995051869ad211fb8f15d5f (diff)
downloadlinux-6fb076e60d65e574756cd1a4262c1c05b750ec21.tar.gz
linux-6fb076e60d65e574756cd1a4262c1c05b750ec21.tar.bz2
linux-6fb076e60d65e574756cd1a4262c1c05b750ec21.zip
bcachefs: Fix spurious inconsistency in recovery
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/alloc_background.c')
-rw-r--r--fs/bcachefs/alloc_background.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/bcachefs/alloc_background.c b/fs/bcachefs/alloc_background.c
index 25c18b8cd3a6..61991d898d99 100644
--- a/fs/bcachefs/alloc_background.c
+++ b/fs/bcachefs/alloc_background.c
@@ -232,7 +232,9 @@ int bch2_alloc_read(struct bch_fs *c, struct journal_keys *journal_keys)
bch2_trans_init(&trans, c);
for_each_btree_key(&trans, iter, BTREE_ID_ALLOC, POS_MIN, 0, k, ret)
- bch2_mark_key(c, k, true, 0, NULL, 0, 0);
+ bch2_mark_key(c, k, true, 0, NULL, 0,
+ BCH_BUCKET_MARK_NOATOMIC|
+ BCH_BUCKET_MARK_ALLOC_READ);
ret = bch2_trans_exit(&trans) ?: ret;
if (ret) {
@@ -243,7 +245,9 @@ int bch2_alloc_read(struct bch_fs *c, struct journal_keys *journal_keys)
for_each_journal_key(*journal_keys, j)
if (j->btree_id == BTREE_ID_ALLOC)
bch2_mark_key(c, bkey_i_to_s_c(j->k),
- true, 0, NULL, 0, 0);
+ true, 0, NULL, 0,
+ BCH_BUCKET_MARK_NOATOMIC|
+ BCH_BUCKET_MARK_ALLOC_READ);
percpu_down_write(&c->mark_lock);
bch2_dev_usage_from_buckets(c);