]> git.sesse.net Git - bcachefs-tools-debian/blob - c_src/libbcachefs/btree_key_cache_types.h
rust: bump rpassword to v7.x
[bcachefs-tools-debian] / c_src / libbcachefs / btree_key_cache_types.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _BCACHEFS_BTREE_KEY_CACHE_TYPES_H
3 #define _BCACHEFS_BTREE_KEY_CACHE_TYPES_H
4
5 struct btree_key_cache_freelist {
6         struct bkey_cached      *objs[16];
7         unsigned                nr;
8 };
9
10 struct btree_key_cache {
11         struct mutex            lock;
12         struct rhashtable       table;
13         bool                    table_init_done;
14
15         struct list_head        freed_pcpu;
16         size_t                  nr_freed_pcpu;
17         struct list_head        freed_nonpcpu;
18         size_t                  nr_freed_nonpcpu;
19
20         struct shrinker         *shrink;
21         unsigned                shrink_iter;
22         struct btree_key_cache_freelist __percpu *pcpu_freed;
23
24         atomic_long_t           nr_freed;
25         atomic_long_t           nr_keys;
26         atomic_long_t           nr_dirty;
27 };
28
29 struct bkey_cached_key {
30         u32                     btree_id;
31         struct bpos             pos;
32 } __packed __aligned(4);
33
34 #endif /* _BCACHEFS_BTREE_KEY_CACHE_TYPES_H */