summaryrefslogtreecommitdiffstats
path: root/fs/bcachefs/bcachefs.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2024-03-17 20:25:39 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2024-03-17 20:53:12 -0400
commita0a466ea981ba57426e8ae56e2291d0f39566442 (patch)
tree859b1880b8bb42ab58a33c39168cc336e7db32cf /fs/bcachefs/bcachefs.h
parent37bb9c9572858288457614366635e8c4c1eaf8ce (diff)
downloadlinux-stable-a0a466ea981ba57426e8ae56e2291d0f39566442.tar.gz
linux-stable-a0a466ea981ba57426e8ae56e2291d0f39566442.tar.bz2
linux-stable-a0a466ea981ba57426e8ae56e2291d0f39566442.zip
bcachefs: Split out btree_node_rewrite_worker
This fixes a deadlock due to using btree_interior_update_worker for non interior updates - async btree node rewrites were blocking, and then blocking other interior updates. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/bcachefs.h')
-rw-r--r--fs/bcachefs/bcachefs.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/bcachefs/bcachefs.h b/fs/bcachefs/bcachefs.h
index 339dc3e1dcd3..799aa32b6b4d 100644
--- a/fs/bcachefs/bcachefs.h
+++ b/fs/bcachefs/bcachefs.h
@@ -849,6 +849,8 @@ struct bch_fs {
struct workqueue_struct *btree_interior_update_worker;
struct work_struct btree_interior_update_work;
+ struct workqueue_struct *btree_node_rewrite_worker;
+
struct list_head pending_node_rewrites;
struct mutex pending_node_rewrites_lock;