diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2025-07-30 20:05:00 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2025-07-31 02:25:25 -0400 |
commit | ec44587f8d9c6a010f04d30e2c7fab866facd34e (patch) | |
tree | 5a5a4f3620cae1286a53a8bcdeab510bc9332697 | |
parent | 951d23507b08c21f5f59b0df10eddd07a5ef6b75 (diff) |
bcachefs: for_each_btree_key_continue() no longer exits iter
Prep work for more CLASS() conversion.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r-- | fs/bcachefs/backpointers.c | 3 | ||||
-rw-r--r-- | fs/bcachefs/btree_gc.c | 1 | ||||
-rw-r--r-- | fs/bcachefs/btree_iter.h | 5 | ||||
-rw-r--r-- | fs/bcachefs/disk_accounting.c | 1 | ||||
-rw-r--r-- | fs/bcachefs/subvolume.h | 5 |
5 files changed, 11 insertions, 4 deletions
diff --git a/fs/bcachefs/backpointers.c b/fs/bcachefs/backpointers.c index 5f2339652055..42c321d42721 100644 --- a/fs/bcachefs/backpointers.c +++ b/fs/bcachefs/backpointers.c @@ -835,6 +835,7 @@ static int bch2_check_extents_to_backpointers_pass(struct btree_trans *trans, check_extent_to_backpointers(trans, s, btree_id, level, k) ?: bch2_trans_commit(trans, NULL, NULL, BCH_TRANS_COMMIT_no_enospc); })); + bch2_trans_iter_exit(&iter); if (ret) return ret; @@ -1060,6 +1061,7 @@ static int bch2_pin_backpointer_nodes_with_missing(struct btree_trans *trans, bch2_btree_node_prefetch(trans, path, tmp.k, path->btree_id, path->level - 1); })); + bch2_trans_iter_exit(&iter); if (ret) return ret; @@ -1089,6 +1091,7 @@ static int bch2_pin_backpointer_nodes_with_missing(struct btree_trans *trans, ret; })); + bch2_trans_iter_exit(&iter); if (ret) return ret; diff --git a/fs/bcachefs/btree_gc.c b/fs/bcachefs/btree_gc.c index b7f750cb31f2..ce3c7750a922 100644 --- a/fs/bcachefs/btree_gc.c +++ b/fs/bcachefs/btree_gc.c @@ -713,6 +713,7 @@ static int bch2_gc_btree(struct btree_trans *trans, gc_pos_set(c, gc_pos_btree(btree, level, k.k->p)); bch2_gc_mark_key(trans, btree, level, &prev, &iter, k, initial); })); + bch2_trans_iter_exit(&iter); if (ret) goto err; } diff --git a/fs/bcachefs/btree_iter.h b/fs/bcachefs/btree_iter.h index 3e2d84afc26e..9fcfd00c88f7 100644 --- a/fs/bcachefs/btree_iter.h +++ b/fs/bcachefs/btree_iter.h @@ -826,7 +826,6 @@ transaction_restart: \ })); \ } while (!_ret3 && bch2_btree_iter_advance(&(_iter))); \ \ - bch2_trans_iter_exit(&(_iter)); \ _ret3; \ }) @@ -842,7 +841,9 @@ transaction_restart: \ bch2_trans_iter_init((_trans), &(_iter), (_btree_id), \ (_start), (_flags)); \ \ - for_each_btree_key_max_continue(_trans, _iter, _end, _flags, _k, _do);\ + int _ret = for_each_btree_key_max_continue(_trans, _iter, _end, _flags, _k, _do);\ + bch2_trans_iter_exit(&(_iter)); \ + _ret; \ }) #define for_each_btree_key(_trans, _iter, _btree_id, \ diff --git a/fs/bcachefs/disk_accounting.c b/fs/bcachefs/disk_accounting.c index 484261da6d25..f96530c70262 100644 --- a/fs/bcachefs/disk_accounting.c +++ b/fs/bcachefs/disk_accounting.c @@ -784,6 +784,7 @@ int bch2_accounting_read(struct bch_fs *c) accounting_read_key(trans, k); })); + bch2_trans_iter_exit(&iter); if (ret) return ret; diff --git a/fs/bcachefs/subvolume.h b/fs/bcachefs/subvolume.h index d076104fd4ef..b39ff39b252d 100644 --- a/fs/bcachefs/subvolume.h +++ b/fs/bcachefs/subvolume.h @@ -62,7 +62,6 @@ bch2_btree_iter_peek_in_subvolume_max_type(struct btree_iter *iter, struct bpos })); \ } while (!_ret3 && bch2_btree_iter_advance(&(_iter))); \ \ - bch2_trans_iter_exit(&(_iter)); \ _ret3; \ }) @@ -73,8 +72,10 @@ bch2_btree_iter_peek_in_subvolume_max_type(struct btree_iter *iter, struct bpos bch2_trans_iter_init((_trans), &(_iter), (_btree_id), \ (_start), (_flags)); \ \ - for_each_btree_key_in_subvolume_max_continue(_trans, _iter, \ + int _ret = for_each_btree_key_in_subvolume_max_continue(_trans, _iter, \ _end, _subvolid, _flags, _k, _do); \ + bch2_trans_iter_exit(&(_iter)); \ + _ret; \ }) int bch2_subvolume_unlink(struct btree_trans *, u32); |