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

bcachefs: Add missing synchronize_srcu_expedited() call when shutting down



We use the polling interface to srcu for tracking pending frees; when
shutting down we don't need to wait for an srcu barrier to free them,
but SRCU still gets confused if we shutdown with an outstanding grace
period.

Reported-by: default avatar <syzbot+6a038377f0a594d7d44e@syzkaller.appspotmail.com>
Reported-by: default avatar <syzbot+0ece6edfd05ed20e32d9@syzkaller.appspotmail.com>
Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent 9432e90d
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -3401,8 +3401,10 @@ void bch2_fs_btree_iter_exit(struct bch_fs *c)
		bch2_time_stats_exit(&s->lock_hold_times);
	}

	if (c->btree_trans_barrier_initialized)
	if (c->btree_trans_barrier_initialized) {
		synchronize_srcu_expedited(&c->btree_trans_barrier);
		cleanup_srcu_struct(&c->btree_trans_barrier);
	}
	mempool_exit(&c->btree_trans_mem_pool);
	mempool_exit(&c->btree_trans_pool);
}