From: Greg Kroah-Hartman Date: Mon, 29 Aug 2022 08:01:57 +0000 (+0200) Subject: 5.19-stable patches X-Git-Tag: v5.10.140~18 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=52a4e4742bb9bce1b752b25bf07476d8b7ce11aa;p=thirdparty%2Fkernel%2Fstable-queue.git 5.19-stable patches added patches: io_uring-fix-issue-with-io_write-not-always-undoing-sb_start_write.patch --- diff --git a/queue-5.19/io_uring-fix-issue-with-io_write-not-always-undoing-sb_start_write.patch b/queue-5.19/io_uring-fix-issue-with-io_write-not-always-undoing-sb_start_write.patch new file mode 100644 index 00000000000..ec1de1f37c8 --- /dev/null +++ b/queue-5.19/io_uring-fix-issue-with-io_write-not-always-undoing-sb_start_write.patch @@ -0,0 +1,36 @@ +From foo@baz Mon Aug 29 10:00:35 AM CEST 2022 +From: Jens Axboe +Date: Thu, 25 Aug 2022 10:17:25 -0600 +Subject: io_uring: fix issue with io_write() not always undoing sb_start_write() + +From: Jens Axboe + +commit e053aaf4da56cbf0afb33a0fda4a62188e2c0637 upstream. + +This is actually an older issue, but we never used to hit the -EAGAIN +path before having done sb_start_write(). Make sure that we always call +kiocb_end_write() if we need to retry the write, so that we keep the +calls to sb_start_write() etc balanced. + +Signed-off-by: Jens Axboe +Signed-off-by: Greg Kroah-Hartman +--- + io_uring/io_uring.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +--- a/io_uring/io_uring.c ++++ b/io_uring/io_uring.c +@@ -4331,7 +4331,12 @@ done: + copy_iov: + iov_iter_restore(&s->iter, &s->iter_state); + ret = io_setup_async_rw(req, iovec, s, false); +- return ret ?: -EAGAIN; ++ if (!ret) { ++ if (kiocb->ki_flags & IOCB_WRITE) ++ kiocb_end_write(req); ++ return -EAGAIN; ++ } ++ return ret; + } + out_free: + /* it's reportedly faster than delegating the null check to kfree() */ diff --git a/queue-5.19/series b/queue-5.19/series index f254039ebff..893cd90b3a7 100644 --- a/queue-5.19/series +++ b/queue-5.19/series @@ -130,3 +130,4 @@ riscv-signal-fix-missing-prototype-warning.patch riscv-traps-add-missing-prototype.patch riscv-dts-microchip-correct-l2-cache-interrupts.patch revert-zram-remove-double-compression-logic.patch +io_uring-fix-issue-with-io_write-not-always-undoing-sb_start_write.patch