diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2023-12-16 21:01:40 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2025-04-29 13:44:31 -0400 |
commit | e2bb7d2012b794b70b4aec9e8f0feaaa124594ee (patch) | |
tree | 5ff86b46b7a1d0b6f4e89524f1f16212338f33c2 | |
parent | 13b8a3bdd92d87484af8f1673157f3dcd679ad20 (diff) |
bcachefs: Kill BTREE_ITER_with_updates
nice API cleanup, forgetting BTREE_ITER_with_updates when it's needed is
a painful bug.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r-- | fs/bcachefs/alloc_background.c | 4 | ||||
-rw-r--r-- | fs/bcachefs/backpointers.c | 3 | ||||
-rw-r--r-- | fs/bcachefs/btree_iter.c | 9 | ||||
-rw-r--r-- | fs/bcachefs/btree_types.h | 1 | ||||
-rw-r--r-- | fs/bcachefs/btree_update.c | 1 | ||||
-rw-r--r-- | fs/bcachefs/buckets.c | 3 | ||||
-rw-r--r-- | fs/bcachefs/fsck.c | 3 | ||||
-rw-r--r-- | fs/bcachefs/inode.c | 5 | ||||
-rw-r--r-- | fs/bcachefs/snapshot.c | 7 | ||||
-rw-r--r-- | fs/bcachefs/subvolume.c | 3 |
10 files changed, 13 insertions, 26 deletions
diff --git a/fs/bcachefs/alloc_background.c b/fs/bcachefs/alloc_background.c index 1cd331f97dee..04335c16f467 100644 --- a/fs/bcachefs/alloc_background.c +++ b/fs/bcachefs/alloc_background.c @@ -457,7 +457,6 @@ bch2_trans_start_alloc_update_noupdate(struct btree_trans *trans, struct btree_i struct bpos pos) { struct bkey_s_c k = bch2_bkey_get_iter(trans, iter, BTREE_ID_alloc, pos, - BTREE_ITER_with_updates| BTREE_ITER_cached| BTREE_ITER_intent); int ret = bkey_err(k); @@ -756,8 +755,7 @@ static noinline int bch2_bucket_gen_update(struct btree_trans *trans, return ret; k = bch2_bkey_get_iter(trans, &iter, BTREE_ID_bucket_gens, pos, - BTREE_ITER_intent| - BTREE_ITER_with_updates); + BTREE_ITER_intent); ret = bkey_err(k); if (ret) return ret; diff --git a/fs/bcachefs/backpointers.c b/fs/bcachefs/backpointers.c index 65208f8288f6..93e3cba27f46 100644 --- a/fs/bcachefs/backpointers.c +++ b/fs/bcachefs/backpointers.c @@ -155,8 +155,7 @@ int bch2_bucket_backpointer_mod_nowritebuffer(struct btree_trans *trans, struct bkey_s_c k = bch2_bkey_get_iter(trans, &bp_iter, BTREE_ID_backpointers, bp->k.p, BTREE_ITER_intent| - BTREE_ITER_slots| - BTREE_ITER_with_updates); + BTREE_ITER_slots); int ret = bkey_err(k); if (ret) return ret; diff --git a/fs/bcachefs/btree_iter.c b/fs/bcachefs/btree_iter.c index b3b93e4e67c2..6bdf24d7b429 100644 --- a/fs/bcachefs/btree_iter.c +++ b/fs/bcachefs/btree_iter.c @@ -2275,8 +2275,7 @@ static struct bkey_s_c __bch2_btree_iter_peek(struct btree_trans *trans, struct if (unlikely(iter->flags & BTREE_ITER_with_journal)) btree_trans_peek_journal(trans, iter, &k); - if (unlikely((iter->flags & BTREE_ITER_with_updates) && - trans->nr_updates)) + if (unlikely(trans->nr_updates)) bch2_btree_trans_peek_updates(trans, iter, &k); if (k.k && bkey_deleted(k.k)) { @@ -2541,8 +2540,7 @@ static struct bkey_s_c __bch2_btree_iter_peek_prev(struct btree_trans *trans, st if (unlikely(iter->flags & BTREE_ITER_with_journal)) btree_trans_peek_prev_journal(trans, iter, &k); - if (unlikely((iter->flags & BTREE_ITER_with_updates) && - trans->nr_updates)) + if (unlikely(trans->nr_updates)) bch2_btree_trans_peek_prev_updates(trans, iter, &k); if (likely(k.k && !bkey_deleted(k.k))) { @@ -2774,8 +2772,7 @@ struct bkey_s_c bch2_btree_iter_peek_slot(struct btree_trans *trans, struct btre !(iter->flags & (BTREE_ITER_is_extents|BTREE_ITER_filter_snapshots))) { k = bkey_s_c_null; - if (unlikely((iter->flags & BTREE_ITER_with_updates) && - trans->nr_updates)) { + if (unlikely(trans->nr_updates)) { bch2_btree_trans_peek_slot_updates(trans, iter, &k); if (k.k) goto out; diff --git a/fs/bcachefs/btree_types.h b/fs/bcachefs/btree_types.h index 09c960b4e788..bb088d438ad3 100644 --- a/fs/bcachefs/btree_types.h +++ b/fs/bcachefs/btree_types.h @@ -225,7 +225,6 @@ struct btree_node_iter { x(not_extents) \ x(cached) \ x(with_key_cache) \ - x(with_updates) \ x(with_journal) \ x(snapshot_field) \ x(all_snapshots) \ diff --git a/fs/bcachefs/btree_update.c b/fs/bcachefs/btree_update.c index 690f2dfb833e..e4482d76574d 100644 --- a/fs/bcachefs/btree_update.c +++ b/fs/bcachefs/btree_update.c @@ -296,7 +296,6 @@ static int bch2_trans_update_extent(struct btree_trans *trans, bch2_trans_iter_init(trans, &iter, btree_id, bkey_start_pos(&insert->k), BTREE_ITER_intent| - BTREE_ITER_with_updates| BTREE_ITER_not_extents); k = bch2_btree_iter_peek_max(trans, &iter, POS(insert->k.p.inode, U64_MAX)); if ((ret = bkey_err(k))) diff --git a/fs/bcachefs/buckets.c b/fs/bcachefs/buckets.c index 9a6aa4714c48..19cafdbe454b 100644 --- a/fs/bcachefs/buckets.c +++ b/fs/bcachefs/buckets.c @@ -679,8 +679,7 @@ static int bch2_trigger_stripe_ptr(struct btree_trans *trans, if (flags & BTREE_TRIGGER_transactional) { struct btree_iter iter; struct bkey_i_stripe *s = bch2_bkey_get_mut_typed(trans, &iter, - BTREE_ID_stripes, POS(0, p.ec.idx), - BTREE_ITER_with_updates, stripe); + BTREE_ID_stripes, POS(0, p.ec.idx), 0, stripe); int ret = PTR_ERR_OR_ZERO(s); if (unlikely(ret)) { bch2_trans_inconsistent_on(bch2_err_matches(ret, ENOENT), trans, diff --git a/fs/bcachefs/fsck.c b/fs/bcachefs/fsck.c index bb142db61f04..a6c0cf4d6b98 100644 --- a/fs/bcachefs/fsck.c +++ b/fs/bcachefs/fsck.c @@ -354,8 +354,7 @@ static int maybe_delete_dirent(struct btree_trans *trans, struct bpos d_pos, u32 struct btree_iter iter; struct bkey_s_c k = bch2_bkey_get_iter(trans, &iter, BTREE_ID_dirents, SPOS(d_pos.inode, d_pos.offset, snapshot), - BTREE_ITER_intent| - BTREE_ITER_with_updates); + BTREE_ITER_intent); int ret = bkey_err(k); if (ret) return ret; diff --git a/fs/bcachefs/inode.c b/fs/bcachefs/inode.c index b51d98cf8a80..eb943879b798 100644 --- a/fs/bcachefs/inode.c +++ b/fs/bcachefs/inode.c @@ -655,8 +655,7 @@ int __bch2_inode_has_child_snapshots(struct btree_trans *trans, struct bpos pos) for_each_btree_key_max_norestart(trans, iter, BTREE_ID_inodes, POS(0, pos.offset), bpos_predecessor(pos), - BTREE_ITER_all_snapshots| - BTREE_ITER_with_updates, k, ret) + BTREE_ITER_all_snapshots, k, ret) if (bch2_snapshot_is_ancestor(c, k.k->p.snapshot, pos.snapshot) && bkey_is_inode(k.k)) { ret = 1; @@ -688,7 +687,7 @@ static int update_parent_inode_has_children(struct btree_trans *trans, struct bp { struct btree_iter iter; struct bkey_s_c k = bch2_inode_get_iter_snapshot_parent(trans, - &iter, pos, BTREE_ITER_with_updates); + &iter, pos, 0); int ret = bkey_err(k); if (ret) return ret; diff --git a/fs/bcachefs/snapshot.c b/fs/bcachefs/snapshot.c index 38cc20caf26f..88f3ad2d8ac7 100644 --- a/fs/bcachefs/snapshot.c +++ b/fs/bcachefs/snapshot.c @@ -50,7 +50,7 @@ int bch2_snapshot_tree_lookup(struct btree_trans *trans, u32 id, struct bch_snapshot_tree *s) { int ret = bch2_bkey_get_val_typed(trans, BTREE_ID_snapshot_trees, POS(0, id), - BTREE_ITER_with_updates, snapshot_tree, s); + 0, snapshot_tree, s); if (bch2_err_matches(ret, ENOENT)) ret = -BCH_ERR_ENOENT_snapshot_tree; @@ -362,8 +362,7 @@ int bch2_mark_snapshot(struct btree_trans *trans, int bch2_snapshot_lookup(struct btree_trans *trans, u32 id, struct bch_snapshot *s) { - return bch2_bkey_get_val_typed(trans, BTREE_ID_snapshots, POS(0, id), - BTREE_ITER_with_updates, snapshot, s); + return bch2_bkey_get_val_typed(trans, BTREE_ID_snapshots, POS(0, id), 0, snapshot, s); } /* fsck: */ @@ -650,7 +649,7 @@ static int snapshot_tree_ptr_repair(struct btree_trans *trans, root = bch2_bkey_get_iter_typed(trans, &root_iter, BTREE_ID_snapshots, POS(0, root_id), - BTREE_ITER_with_updates, snapshot); + 0, snapshot); ret = bkey_err(root); if (ret) goto err; diff --git a/fs/bcachefs/subvolume.c b/fs/bcachefs/subvolume.c index 51ab2ee10706..17404e68c31a 100644 --- a/fs/bcachefs/subvolume.c +++ b/fs/bcachefs/subvolume.c @@ -356,8 +356,7 @@ int __bch2_subvolume_get_snapshot(struct btree_trans *trans, u32 subvolid, subvol = bch2_bkey_get_iter_typed(trans, &iter, BTREE_ID_subvolumes, POS(0, subvolid), - BTREE_ITER_cached|BTREE_ITER_with_updates, - subvolume); + BTREE_ITER_cached, subvolume); ret = bkey_err(subvol); if (bch2_err_matches(ret, ENOENT)) |