things will break wildly if we leave a stack allocated closure on a waitlist
Reported-by: [email protected] Signed-off-by: Kent Overstreet <[email protected]> --- fs/bcachefs/ec.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/bcachefs/ec.c b/fs/bcachefs/ec.c index 62dda821247e..8a8c94bd2580 100644 --- a/fs/bcachefs/ec.c +++ b/fs/bcachefs/ec.c @@ -2060,6 +2060,8 @@ struct ec_stripe_head *bch2_ec_stripe_head_get(struct btree_trans *trans, BUG_ON(trans->restarted); return h; err: + if (waiting) + closure_wake_up(&c->freelist_wait); bch2_ec_stripe_head_put(c, h); return ERR_PTR(ret); } -- 2.50.0
