summaryrefslogtreecommitdiff
path: root/libbcachefs/btree_types.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2017-04-14 20:38:49 -0800
committerKent Overstreet <kent.overstreet@gmail.com>2017-04-14 20:40:31 -0800
commit819f2dde79241915a6edda2c20bb4ca5d4017030 (patch)
treeb165cdf270fd14e98ecfa4affe57943c6854529e /libbcachefs/btree_types.h
parent03bc9d71b13e6f8e879894f93ea16f1f4a8280c9 (diff)
Update bcachefs sources to f026e4e024
Diffstat (limited to 'libbcachefs/btree_types.h')
-rw-r--r--libbcachefs/btree_types.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/libbcachefs/btree_types.h b/libbcachefs/btree_types.h
index 915e42c2..a0f5b579 100644
--- a/libbcachefs/btree_types.h
+++ b/libbcachefs/btree_types.h
@@ -110,6 +110,14 @@ struct btree {
*/
struct list_head write_blocked;
+ /*
+ * Also for asynchronous splits/interior node updates:
+ * If a btree node isn't reachable yet, we don't want to kick off
+ * another write - because that write also won't yet be reachable and
+ * marking it as completed before it's reachable would be incorrect:
+ */
+ struct list_head reachable;
+
struct open_bucket *ob;
/* lru list */
@@ -136,6 +144,7 @@ enum btree_flags {
BTREE_NODE_read_error,
BTREE_NODE_write_error,
BTREE_NODE_dirty,
+ BTREE_NODE_need_write,
BTREE_NODE_noevict,
BTREE_NODE_write_idx,
BTREE_NODE_accessed,
@@ -146,6 +155,7 @@ enum btree_flags {
BTREE_FLAG(read_error);
BTREE_FLAG(write_error);
BTREE_FLAG(dirty);
+BTREE_FLAG(need_write);
BTREE_FLAG(noevict);
BTREE_FLAG(write_idx);
BTREE_FLAG(accessed);