summaryrefslogtreecommitdiffstats
path: root/fs/io_uring.c
diff options
context:
space:
mode:
authorPavel Begunkov <asml.silence@gmail.com>2021-10-17 00:07:08 +0100
committerJens Axboe <axboe@kernel.dk>2021-10-19 05:49:56 -0600
commite74ead135bc4459f7d40b1f8edab1333a28b54e8 (patch)
tree519bcc92c28e705ca3044ec9e8076b7a82fef50a /fs/io_uring.c
parentb10841c98c8980ee50cc1e90640b04c935a24285 (diff)
downloadlinux-e74ead135bc4459f7d40b1f8edab1333a28b54e8.tar.bz2
io_uring: arm poll for non-nowait files
Don't check if we can do nowait before arming apoll, there are several reasons for that. First, we don't care much about files that don't support nowait. Second, it may be useful -- we don't want to be taking away extra workers from io-wq when it can go in some async. Even if it will go through io-wq eventually, it make difference in the numbers of workers actually used. And the last one, it's needed to clean nowait in future commits. [kernel test robot: fix unused-var] Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Link: https://lore.kernel.org/r/9d06f3cb2c8b686d970269a87986f154edb83043.1634425438.git.asml.silence@gmail.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs/io_uring.c')
-rw-r--r--fs/io_uring.c7
1 files changed, 0 insertions, 7 deletions
diff --git a/fs/io_uring.c b/fs/io_uring.c
index 11bd0dd1425a..8a5b20eafccf 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -5588,7 +5588,6 @@ static int io_arm_poll_handler(struct io_kiocb *req)
struct async_poll *apoll;
struct io_poll_table ipt;
__poll_t ret, mask = EPOLLONESHOT | POLLERR | POLLPRI;
- int rw;
if (!req->file || !file_can_poll(req->file))
return IO_APOLL_ABORTED;
@@ -5598,7 +5597,6 @@ static int io_arm_poll_handler(struct io_kiocb *req)
return IO_APOLL_ABORTED;
if (def->pollin) {
- rw = READ;
mask |= POLLIN | POLLRDNORM;
/* If reading from MSG_ERRQUEUE using recvmsg, ignore POLLIN */
@@ -5606,14 +5604,9 @@ static int io_arm_poll_handler(struct io_kiocb *req)
(req->sr_msg.msg_flags & MSG_ERRQUEUE))
mask &= ~POLLIN;
} else {
- rw = WRITE;
mask |= POLLOUT | POLLWRNORM;
}
- /* if we can't nonblock try, then no point in arming a poll handler */
- if (!io_file_supports_nowait(req, rw))
- return IO_APOLL_ABORTED;
-
apoll = kmalloc(sizeof(*apoll), GFP_ATOMIC);
if (unlikely(!apoll))
return IO_APOLL_ABORTED;