diff options
author | 2022-06-27 07:11:33 -0400 | |
---|---|---|
committer | 2022-06-27 07:11:33 -0400 | |
commit | efb8f6113b4a4df22556ed572fa800d945fc4300 (patch) | |
tree | 5280a108304cc5c88b3a8e18b9f2747d5f2157bf | |
parent | Linux patch 5.10.125 (diff) | |
download | linux-patches-efb8f6113b4a4df22556ed572fa800d945fc4300.tar.gz linux-patches-efb8f6113b4a4df22556ed572fa800d945fc4300.tar.bz2 linux-patches-efb8f6113b4a4df22556ed572fa800d945fc4300.zip |
Linux patych 5.10.1265.10-135
Signed-off-by: Mike Pagano <mpagano@gentoo.org>
-rw-r--r-- | 0000_README | 4 | ||||
-rw-r--r-- | 1125_linux-5.10.126.patch | 103 |
2 files changed, 107 insertions, 0 deletions
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)) |