Commit f108ddd4 authored by Kent Overstreet's avatar Kent Overstreet
Browse files

bcachefs: Fix shift overflow in btree_lost_data()



Reported-by: default avatar <syzbot+29f65db1a5fe427b5c56@syzkaller.appspotmail.com>
Fixes: 55936afe ("bcachefs: Flag btrees with missing data")
Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent 9667214b
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1555,6 +1555,12 @@ enum btree_id {
	BTREE_ID_NR
};

/*
 * Maximum number of btrees that we will _ever_ have under the current scheme,
 * where we refer to them with bitfields
 */
#define BTREE_ID_NR_MAX		64

static inline bool btree_id_is_alloc(enum btree_id id)
{
	switch (id) {
+3 −0
Original line number Diff line number Diff line
@@ -35,6 +35,9 @@

void bch2_btree_lost_data(struct bch_fs *c, enum btree_id btree)
{
	if (btree >= BTREE_ID_NR_MAX)
		return;

	u64 b = BIT_ULL(btree);

	if (!(c->sb.btrees_lost_data & b)) {