summaryrefslogtreecommitdiffstats
path: root/fs/bcachefs/btree_update_interior.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2021-03-31 15:21:37 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-22 17:08:58 -0400
commite264b2f62a8fdf571e9ca9a741719a9b567573f5 (patch)
treecd550ab79ce1cef0357bba2444c11b014fb505fe /fs/bcachefs/btree_update_interior.h
parentba5f03d362a8c7a32fd63c54cd3aeea0c9f3d7cc (diff)
downloadlinux-stable-e264b2f62a8fdf571e9ca9a741719a9b567573f5.tar.gz
linux-stable-e264b2f62a8fdf571e9ca9a741719a9b567573f5.tar.bz2
linux-stable-e264b2f62a8fdf571e9ca9a741719a9b567573f5.zip
bcachefs: Improve bch2_btree_update_start()
bch2_btree_update_start() is now responsible for taking gc_lock and upgrading the iterator to lock parent nodes - greatly simplifying error handling and all of the callers. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/btree_update_interior.h')
-rw-r--r--fs/bcachefs/btree_update_interior.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/bcachefs/btree_update_interior.h b/fs/bcachefs/btree_update_interior.h
index 45d212730fd7..2a6b51ece0f8 100644
--- a/fs/bcachefs/btree_update_interior.h
+++ b/fs/bcachefs/btree_update_interior.h
@@ -48,6 +48,7 @@ struct btree_update {
} mode;
unsigned nodes_written:1;
+ unsigned took_gc_lock:1;
enum btree_id btree_id;
@@ -120,8 +121,7 @@ struct btree *__bch2_btree_node_alloc_replacement(struct btree_update *,
void bch2_btree_update_done(struct btree_update *);
struct btree_update *
-bch2_btree_update_start(struct btree_trans *, enum btree_id, unsigned,
- unsigned, struct closure *);
+bch2_btree_update_start(struct btree_iter *, unsigned, unsigned, unsigned);
void bch2_btree_interior_update_will_free_node(struct btree_update *,
struct btree *);