mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-18 00:24:39 +00:00
21aec962df
Implement a hash table, using cuckoo hashing, for empty buckets that are waiting on a journal commit before they can be reused. This replaces the journal_seq field of bucket_mark, and is part of eventually getting rid of the in memory bucket array. We may need to make bch2_bucket_needs_journal_commit() lockless, pending profiling and testing. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
23 lines
495 B
C
23 lines
495 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _BUCKETS_WAITING_FOR_JOURNAL_TYPES_H
|
|
#define _BUCKETS_WAITING_FOR_JOURNAL_TYPES_H
|
|
|
|
#include <linux/siphash.h>
|
|
|
|
struct bucket_hashed {
|
|
u64 dev_bucket;
|
|
u64 journal_seq;
|
|
};
|
|
|
|
struct buckets_waiting_for_journal_table {
|
|
unsigned bits;
|
|
u64 hash_seeds[3];
|
|
struct bucket_hashed d[];
|
|
};
|
|
|
|
struct buckets_waiting_for_journal {
|
|
struct mutex lock;
|
|
struct buckets_waiting_for_journal_table *t;
|
|
};
|
|
|
|
#endif /* _BUCKETS_WAITING_FOR_JOURNAL_TYPES_H */
|