summaryrefslogtreecommitdiffstats
path: root/fs/bcachefs/bcachefs.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2023-11-17 23:13:49 -0500
committerKent Overstreet <kent.overstreet@linux.dev>2023-11-24 02:43:12 -0500
commit8a443d3ea1327fea5ac3be77d2e39ebe35bfe9cf (patch)
tree74f257252a4f1467c8e6a49e2ec93b48924c2595 /fs/bcachefs/bcachefs.h
parent63807d951803e422cea8bfb4fdd36f57de191ada (diff)
downloadlinux-stable-8a443d3ea1327fea5ac3be77d2e39ebe35bfe9cf.tar.gz
linux-stable-8a443d3ea1327fea5ac3be77d2e39ebe35bfe9cf.tar.bz2
linux-stable-8a443d3ea1327fea5ac3be77d2e39ebe35bfe9cf.zip
bcachefs: Proper refcounting for journal_keys
The btree iterator code overlays keys from the journal until journal replay is finished; since we're now starting copygc/rebalance etc. before replay is finished, this is multithreaded access and thus needs refcounting. 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 403aa3389fcc..e9d753b04a90 100644
--- a/fs/bcachefs/bcachefs.h
+++ b/fs/bcachefs/bcachefs.h
@@ -638,6 +638,8 @@ struct journal_keys {
size_t gap;
size_t nr;
size_t size;
+ atomic_t ref;
+ bool initial_ref_held;
};
struct btree_trans_buf {