summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2025-07-30 20:05:00 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2025-07-31 02:25:25 -0400
commitec44587f8d9c6a010f04d30e2c7fab866facd34e (patch)
tree5a5a4f3620cae1286a53a8bcdeab510bc9332697
parent951d23507b08c21f5f59b0df10eddd07a5ef6b75 (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.c3
-rw-r--r--fs/bcachefs/btree_gc.c1
-rw-r--r--fs/bcachefs/btree_iter.h5
-rw-r--r--fs/bcachefs/disk_accounting.c1
-rw-r--r--fs/bcachefs/subvolume.h5
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);