diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2022-01-04 22:32:09 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:09:22 -0400 |
commit | 21aec962dfec2df11694350e5b2d3a9a9c298e7d (patch) | |
tree | d30158f7891454d5789228e2d1c7e615d5e78cce /fs/bcachefs/buckets_waiting_for_journal.h | |
parent | f443fa66c98f012412b677afc4f7096ed24108de (diff) | |
download | linux-stable-21aec962dfec2df11694350e5b2d3a9a9c298e7d.tar.gz linux-stable-21aec962dfec2df11694350e5b2d3a9a9c298e7d.tar.bz2 linux-stable-21aec962dfec2df11694350e5b2d3a9a9c298e7d.zip |
bcachefs: New data structure for buckets waiting on journal commit
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>
Diffstat (limited to 'fs/bcachefs/buckets_waiting_for_journal.h')
-rw-r--r-- | fs/bcachefs/buckets_waiting_for_journal.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/fs/bcachefs/buckets_waiting_for_journal.h b/fs/bcachefs/buckets_waiting_for_journal.h new file mode 100644 index 000000000000..d2ae19cbe18c --- /dev/null +++ b/fs/bcachefs/buckets_waiting_for_journal.h @@ -0,0 +1,15 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _BUCKETS_WAITING_FOR_JOURNAL_H +#define _BUCKETS_WAITING_FOR_JOURNAL_H + +#include "buckets_waiting_for_journal_types.h" + +bool bch2_bucket_needs_journal_commit(struct buckets_waiting_for_journal *, + u64, unsigned, u64); +int bch2_set_bucket_needs_journal_commit(struct buckets_waiting_for_journal *, + u64, unsigned, u64, u64); + +void bch2_fs_buckets_waiting_for_journal_exit(struct bch_fs *); +int bch2_fs_buckets_waiting_for_journal_init(struct bch_fs *); + +#endif /* _BUCKETS_WAITING_FOR_JOURNAL_H */ |