summaryrefslogtreecommitdiff
path: root/libbcachefs/btree_key_cache.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2021-03-29 00:21:38 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2021-03-29 00:22:49 -0400
commit40e14938eeebf74830c870a067cca0e8c73feed7 (patch)
tree3f39fa26d17146bbd3e5cdecc5943019c8b4ad3e /libbcachefs/btree_key_cache.h
parenta2094890a90a2f865e49f94e8448deca7e5852ef (diff)
Update bcachefs sources to 9922afc8b6 bcachefs: Add repair code for out of order keys in a btree node.
Diffstat (limited to 'libbcachefs/btree_key_cache.h')
-rw-r--r--libbcachefs/btree_key_cache.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/libbcachefs/btree_key_cache.h b/libbcachefs/btree_key_cache.h
index 02715cd2..4e1e5a9c 100644
--- a/libbcachefs/btree_key_cache.h
+++ b/libbcachefs/btree_key_cache.h
@@ -1,6 +1,15 @@
#ifndef _BCACHEFS_BTREE_KEY_CACHE_H
#define _BCACHEFS_BTREE_KEY_CACHE_H
+static inline size_t bch2_nr_btree_keys_want_flush(struct bch_fs *c)
+{
+ size_t nr_dirty = atomic_long_read(&c->btree_key_cache.nr_dirty);
+ size_t nr_keys = atomic_long_read(&c->btree_key_cache.nr_keys);
+ size_t max_dirty = nr_keys / 4;
+
+ return max_t(ssize_t, 0, nr_dirty - max_dirty);
+}
+
static inline size_t bch2_nr_btree_keys_need_flush(struct bch_fs *c)
{
size_t nr_dirty = atomic_long_read(&c->btree_key_cache.nr_dirty);