xref: /linux/fs/bcachefs/journal_sb.h (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 
3 #include "super-io.h"
4 #include "vstructs.h"
5 
6 static inline unsigned bch2_nr_journal_buckets(struct bch_sb_field_journal *j)
7 {
8 	return j
9 		? (__le64 *) vstruct_end(&j->field) - j->buckets
10 		: 0;
11 }
12 
13 static inline unsigned bch2_sb_field_journal_v2_nr_entries(struct bch_sb_field_journal_v2 *j)
14 {
15 	if (!j)
16 		return 0;
17 
18 	return (struct bch_sb_field_journal_v2_entry *) vstruct_end(&j->field) - &j->d[0];
19 }
20 
21 extern const struct bch_sb_field_ops bch_sb_field_ops_journal;
22 extern const struct bch_sb_field_ops bch_sb_field_ops_journal_v2;
23 
24 int bch2_journal_buckets_to_sb(struct bch_fs *, struct bch_dev *, u64 *, unsigned);
25