commit:     efb8f6113b4a4df22556ed572fa800d945fc4300
Author:     Mike Pagano <mpagano <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 27 11:11:33 2022 +0000
Commit:     Mike Pagano <mpagano <AT> gentoo <DOT> org>
CommitDate: Mon Jun 27 11:11:33 2022 +0000
URL:        https://gitweb.gentoo.org/proj/linux-patches.git/commit/?id=efb8f611

Linux patych 5.10.126

Signed-off-by: Mike Pagano <mpagano <AT> gentoo.org>

 0000_README               |   4 ++
 1125_linux-5.10.126.patch | 103 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 107 insertions(+)

diff --git a/0000_README b/0000_README
index fb42ce16..5378e1d4 100644
--- a/0000_README
+++ b/0000_README
@@ -543,6 +543,10 @@ Patch:  1124_linux-5.10.125.patch
 From:   http://www.kernel.org
 Desc:   Linux 5.10.125
 
+Patch:  1125_linux-5.10.126.patch
+From:   http://www.kernel.org
+Desc:   Linux 5.10.126
+
 Patch:  1500_XATTR_USER_PREFIX.patch
 From:   https://bugs.gentoo.org/show_bug.cgi?id=470644
 Desc:   Support for namespace user.pax.* on tmpfs.

diff --git a/1125_linux-5.10.126.patch b/1125_linux-5.10.126.patch
new file mode 100644
index 00000000..3948f970
--- /dev/null
+++ b/1125_linux-5.10.126.patch
@@ -0,0 +1,103 @@
+diff --git a/Makefile b/Makefile
+index da5b28931e5cb..57434487c2b4d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,7 +1,7 @@
+ # SPDX-License-Identifier: GPL-2.0
+ VERSION = 5
+ PATCHLEVEL = 10
+-SUBLEVEL = 125
++SUBLEVEL = 126
+ EXTRAVERSION =
+ NAME = Dare mighty things
+ 
+diff --git a/fs/io_uring.c b/fs/io_uring.c
+index 40ac37beca47d..2e12dcbc7b0fd 100644
+--- a/fs/io_uring.c
++++ b/fs/io_uring.c
+@@ -696,6 +696,8 @@ struct io_kiocb {
+        */
+       struct list_head                inflight_entry;
+ 
++      struct list_head                iopoll_entry;
++
+       struct percpu_ref               *fixed_file_refs;
+       struct callback_head            task_work;
+       /* for polled requests, i.e. IORING_OP_POLL_ADD and async armed poll */
+@@ -2350,8 +2352,8 @@ static void io_iopoll_queue(struct list_head *again)
+       struct io_kiocb *req;
+ 
+       do {
+-              req = list_first_entry(again, struct io_kiocb, inflight_entry);
+-              list_del(&req->inflight_entry);
++              req = list_first_entry(again, struct io_kiocb, iopoll_entry);
++              list_del(&req->iopoll_entry);
+               __io_complete_rw(req, -EAGAIN, 0, NULL);
+       } while (!list_empty(again));
+ }
+@@ -2373,14 +2375,14 @@ static void io_iopoll_complete(struct io_ring_ctx 
*ctx, unsigned int *nr_events,
+       while (!list_empty(done)) {
+               int cflags = 0;
+ 
+-              req = list_first_entry(done, struct io_kiocb, inflight_entry);
++              req = list_first_entry(done, struct io_kiocb, iopoll_entry);
+               if (READ_ONCE(req->result) == -EAGAIN) {
+                       req->result = 0;
+                       req->iopoll_completed = 0;
+-                      list_move_tail(&req->inflight_entry, &again);
++                      list_move_tail(&req->iopoll_entry, &again);
+                       continue;
+               }
+-              list_del(&req->inflight_entry);
++              list_del(&req->iopoll_entry);
+ 
+               if (req->flags & REQ_F_BUFFER_SELECTED)
+                       cflags = io_put_rw_kbuf(req);
+@@ -2416,7 +2418,7 @@ static int io_do_iopoll(struct io_ring_ctx *ctx, 
unsigned int *nr_events,
+       spin = !ctx->poll_multi_file && *nr_events < min;
+ 
+       ret = 0;
+-      list_for_each_entry_safe(req, tmp, &ctx->iopoll_list, inflight_entry) {
++      list_for_each_entry_safe(req, tmp, &ctx->iopoll_list, iopoll_entry) {
+               struct kiocb *kiocb = &req->rw.kiocb;
+ 
+               /*
+@@ -2425,7 +2427,7 @@ static int io_do_iopoll(struct io_ring_ctx *ctx, 
unsigned int *nr_events,
+                * and complete those lists first, if we have entries there.
+                */
+               if (READ_ONCE(req->iopoll_completed)) {
+-                      list_move_tail(&req->inflight_entry, &done);
++                      list_move_tail(&req->iopoll_entry, &done);
+                       continue;
+               }
+               if (!list_empty(&done))
+@@ -2437,7 +2439,7 @@ static int io_do_iopoll(struct io_ring_ctx *ctx, 
unsigned int *nr_events,
+ 
+               /* iopoll may have completed current req */
+               if (READ_ONCE(req->iopoll_completed))
+-                      list_move_tail(&req->inflight_entry, &done);
++                      list_move_tail(&req->iopoll_entry, &done);
+ 
+               if (ret && spin)
+                       spin = false;
+@@ -2670,7 +2672,7 @@ static void io_iopoll_req_issued(struct io_kiocb *req)
+               struct io_kiocb *list_req;
+ 
+               list_req = list_first_entry(&ctx->iopoll_list, struct io_kiocb,
+-                                              inflight_entry);
++                                              iopoll_entry);
+               if (list_req->file != req->file)
+                       ctx->poll_multi_file = true;
+       }
+@@ -2680,9 +2682,9 @@ static void io_iopoll_req_issued(struct io_kiocb *req)
+        * it to the front so we find it first.
+        */
+       if (READ_ONCE(req->iopoll_completed))
+-              list_add(&req->inflight_entry, &ctx->iopoll_list);
++              list_add(&req->iopoll_entry, &ctx->iopoll_list);
+       else
+-              list_add_tail(&req->inflight_entry, &ctx->iopoll_list);
++              list_add_tail(&req->iopoll_entry, &ctx->iopoll_list);
+ 
+       if ((ctx->flags & IORING_SETUP_SQPOLL) &&
+           wq_has_sleeper(&ctx->sq_data->wait))

Reply via email to