mirror of
https://github.com/torvalds/linux
synced 2024-07-21 02:23:16 +00:00
![Kent Overstreet](/assets/img/avatar_default.png)
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>
24 lines
495 B
C
24 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 */
|