1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _BCACHEFS_BTREE_WRITE_BUFFER_TYPES_H
3 #define _BCACHEFS_BTREE_WRITE_BUFFER_TYPES_H
5 #include "journal_types.h"
7 #define BTREE_WRITE_BUFERED_VAL_U64s_MAX 4
8 #define BTREE_WRITE_BUFERED_U64s_MAX (BKEY_U64s + BTREE_WRITE_BUFERED_VAL_U64s_MAX)
10 struct btree_write_buffered_key {
12 unsigned journal_offset;
14 __BKEY_PADDED(k, BTREE_WRITE_BUFERED_VAL_U64s_MAX);
17 union btree_write_buffer_state {
34 struct btree_write_buffer {
35 struct mutex flush_lock;
36 struct journal_entry_pin journal_pin;
38 union btree_write_buffer_state state;
41 struct btree_write_buffered_key *keys[2];
44 #endif /* _BCACHEFS_BTREE_WRITE_BUFFER_TYPES_H */