summaryrefslogtreecommitdiff
path: root/fs/bcachefs/btree_io.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2021-05-22 06:57:37 +0300
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-23 00:09:04 +0300
commit1ce0cf5fe9300f28e834e6fa001cc5a114cd0493 (patch)
tree235b7e55958463781d9e884bbdcfc8ea6ba73ede /fs/bcachefs/btree_io.h
parent596d3bdc1e749c63e4defc6abbe2552d035e4470 (diff)
downloadlinux-1ce0cf5fe9300f28e834e6fa001cc5a114cd0493.tar.xz
bcachefs: Add a debug mode that always reads from every btree replica
There's a new module parameter, verify_all_btree_replicas, that enables reading from every btree replica when reading in btree nodes and comparing them against each other. We've been seeing some strange btree corruption - this will hopefully aid in tracking it down and catching it more often. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Diffstat (limited to 'fs/bcachefs/btree_io.h')
-rw-r--r--fs/bcachefs/btree_io.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/bcachefs/btree_io.h b/fs/bcachefs/btree_io.h
index cadcf7f886d7..abbc4675964a 100644
--- a/fs/bcachefs/btree_io.h
+++ b/fs/bcachefs/btree_io.h
@@ -13,6 +13,7 @@ struct bch_fs;
struct btree_write;
struct btree;
struct btree_iter;
+struct btree_node_read_all;
static inline bool btree_node_dirty(struct btree *b)
{
@@ -33,8 +34,11 @@ static inline void clear_btree_node_dirty(struct bch_fs *c, struct btree *b)
struct btree_read_bio {
struct bch_fs *c;
+ struct btree *b;
+ struct btree_node_read_all *ra;
u64 start_time;
unsigned have_ioref:1;
+ unsigned idx:7;
struct extent_ptr_decoded pick;
struct work_struct work;
struct bio bio;