summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2024-08-19 02:38:49 +0200
committerKent Overstreet <kent.overstreet@linux.dev>2024-08-22 08:07:22 +0200
commitc2a503f3e98e191d86738f5438a3a2b69575c830 (patch)
treeea88f1899f5f2a6c396316cad591e3d7dadb6a8b
parentbcachefs: Fix bch2_trigger_alloc assert (diff)
downloadlinux-c2a503f3e98e191d86738f5438a3a2b69575c830.tar.xz
linux-c2a503f3e98e191d86738f5438a3a2b69575c830.zip
bcachefs: Fix bch2_bucket_gens_init()
Comparing the wrong bpos - this was missed because normally bucket_gens_init() runs on brand new filesystems, but this bug caused it to overwrite bucket_gens keys with 0s when upgrading ancient filesystems. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r--fs/bcachefs/alloc_background.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/bcachefs/alloc_background.c b/fs/bcachefs/alloc_background.c
index 488d0710f7b9..ac933142aeda 100644
--- a/fs/bcachefs/alloc_background.c
+++ b/fs/bcachefs/alloc_background.c
@@ -556,7 +556,7 @@ int bch2_bucket_gens_init(struct bch_fs *c)
struct bpos pos = alloc_gens_pos(iter.pos, &offset);
int ret2 = 0;
- if (have_bucket_gens_key && bkey_cmp(iter.pos, pos)) {
+ if (have_bucket_gens_key && !bkey_eq(g.k.p, pos)) {
ret2 = bch2_btree_insert_trans(trans, BTREE_ID_bucket_gens, &g.k_i, 0) ?:
bch2_trans_commit(trans, NULL, NULL, BCH_TRANS_COMMIT_no_enospc);
if (ret2)