bcachefs: ec: Ensure new stripe is closed in error path

This fixes a use-after-free bug.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
Kent Overstreet 2023-02-27 22:30:54 -05:00
parent f3a65bb98b
commit a64adedb86

View file

@ -1107,8 +1107,6 @@ static void ec_stripe_create(struct ec_stripe_new *s)
bch2_err_str(ret));
goto err;
}
bch2_stripe_close(c, s);
err:
bch2_disk_reservation_put(c, &s->res);
@ -1124,6 +1122,8 @@ static void ec_stripe_create(struct ec_stripe_new *s)
}
}
bch2_stripe_close(c, s);
ec_stripe_buf_exit(&s->existing_stripe);
ec_stripe_buf_exit(&s->new_stripe);
closure_debug_destroy(&s->iodone);