From 4b2231e9b8385e8fb92d64c25f84b234991cf592 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Mon, 13 Feb 2023 18:21:40 -0500 Subject: bcachefs: Fix verify_update_old_key() This fixes a very-rare race in our assertion, with needs_whiteout being modified in the btree key. Signed-off-by: Kent Overstreet --- fs/bcachefs/btree_update_leaf.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fs/bcachefs/btree_update_leaf.c b/fs/bcachefs/btree_update_leaf.c index 0195b13de152..46f97b9c813c 100644 --- a/fs/bcachefs/btree_update_leaf.c +++ b/fs/bcachefs/btree_update_leaf.c @@ -56,9 +56,10 @@ static void verify_update_old_key(struct btree_trans *trans, struct btree_insert k = bkey_i_to_s_c(j_k); } - i->old_k.needs_whiteout = k.k->needs_whiteout; + u = *k.k; + u.needs_whiteout = i->old_k.needs_whiteout; - BUG_ON(memcmp(&i->old_k, k.k, sizeof(struct bkey))); + BUG_ON(memcmp(&i->old_k, &u, sizeof(struct bkey))); BUG_ON(i->old_v != k.v); #endif } -- cgit v1.2.3