From: Kent Overstreet Date: Sun, 19 Mar 2023 17:01:06 +0000 (-0400) Subject: bcachefs: Fix nocow write path closure bug X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=dc6274bcb87dbf50c62d9dbacba770bae2f10279;p=linux.git 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 --- diff --git a/fs/bcachefs/io.c b/fs/bcachefs/io.c index ad22557197a66..cc2dfcf16deee 100644 --- a/fs/bcachefs/io.c +++ b/fs/bcachefs/io.c @@ -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;