/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _BCACHEFS_JOURNAL_SEQ_BLACKLIST_H
#define _BCACHEFS_JOURNAL_SEQ_BLACKLIST_H

static inline unsigned
blacklist_nr_entries(struct bch_sb_field_journal_seq_blacklist *bl)
{
	return bl
		? ((vstruct_end(&bl->field) - (void *) &bl->start[0]) /
		   sizeof(struct journal_seq_blacklist_entry))
		: 0;
}

bool bch2_journal_seq_is_blacklisted(struct bch_fs *, u64, bool);
int bch2_journal_seq_blacklist_add(struct bch_fs *c, u64, u64);
int bch2_blacklist_table_initialize(struct bch_fs *);

extern const struct bch_sb_field_ops bch_sb_field_ops_journal_seq_blacklist;

bool bch2_blacklist_entries_gc(struct bch_fs *);

#endif /* _BCACHEFS_JOURNAL_SEQ_BLACKLIST_H */
