35 lines
745 B
C
35 lines
745 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _BCACHEFS_BTREE_KEY_CACHE_TYPES_H
|
|
#define _BCACHEFS_BTREE_KEY_CACHE_TYPES_H
|
|
|
|
struct btree_key_cache_freelist {
|
|
struct bkey_cached *objs[16];
|
|
unsigned nr;
|
|
};
|
|
|
|
struct btree_key_cache {
|
|
struct mutex lock;
|
|
struct rhashtable table;
|
|
bool table_init_done;
|
|
|
|
struct list_head freed_pcpu;
|
|
size_t nr_freed_pcpu;
|
|
struct list_head freed_nonpcpu;
|
|
size_t nr_freed_nonpcpu;
|
|
|
|
struct shrinker *shrink;
|
|
unsigned shrink_iter;
|
|
struct btree_key_cache_freelist __percpu *pcpu_freed;
|
|
|
|
atomic_long_t nr_freed;
|
|
atomic_long_t nr_keys;
|
|
atomic_long_t nr_dirty;
|
|
};
|
|
|
|
struct bkey_cached_key {
|
|
u32 btree_id;
|
|
struct bpos pos;
|
|
} __packed __aligned(4);
|
|
|
|
#endif /* _BCACHEFS_BTREE_KEY_CACHE_TYPES_H */
|