bcachefs: Fix nocow write path closure bug

With regular waitlists, we need to ensure we always call finish_wait().
With closures, the equivalent is that we need to call closure_sync()
before returning with a stack-allocated closure.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
Kent Overstreet 2023-03-19 13:01:06 -04:00
parent ac77810cb4
commit dc6274bcb8

View File

@ -453,13 +453,13 @@ retry:
opts.data_replicas,
opts.data_replicas,
RESERVE_none, 0, &cl, &wp);
if (bch2_err_matches(ret, BCH_ERR_operation_blocked)) {
if (ret) {
bch2_trans_unlock(trans);
closure_sync(&cl);
goto retry;
}
if (ret)
if (bch2_err_matches(ret, BCH_ERR_operation_blocked))
goto retry;
return ret;
}
sectors = min(sectors, wp->sectors_free);
sectors_allocated = sectors;