aboutsummaryrefslogtreecommitdiff
path: root/io_uring/poll.c
diff options
context:
space:
mode:
authorGravatar Jens Axboe <axboe@kernel.dk> 2023-06-23 09:04:35 -0600
committerGravatar Jens Axboe <axboe@kernel.dk> 2023-07-17 10:05:48 -0600
commita30badf66de8516b5a5bca7a5d339f377ff983ea (patch)
treee9fc1497aa6acd62059b0eaee3096ecb1fedd877 /io_uring/poll.c
parentio_uring/cancel: fix sequence matching for IORING_ASYNC_CANCEL_ANY (diff)
downloadlinux-a30badf66de8516b5a5bca7a5d339f377ff983ea.tar.gz
linux-a30badf66de8516b5a5bca7a5d339f377ff983ea.tar.bz2
linux-a30badf66de8516b5a5bca7a5d339f377ff983ea.zip
io_uring: use cancelation match helper for poll and timeout requests
Get rid of the request vs io_cancel_data checking and just use the exported helper for this. Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'io_uring/poll.c')
-rw-r--r--io_uring/poll.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/io_uring/poll.c b/io_uring/poll.c
index c7bb292c9046..dc1219f606e5 100644
--- a/io_uring/poll.c
+++ b/io_uring/poll.c
@@ -824,14 +824,10 @@ static struct io_kiocb *io_poll_file_find(struct io_ring_ctx *ctx,
spin_lock(&hb->lock);
hlist_for_each_entry(req, &hb->list, hash_node) {
- if (!(cd->flags & IORING_ASYNC_CANCEL_ANY) &&
- req->file != cd->file)
- continue;
- if (cd->seq == req->work.cancel_seq)
- continue;
- req->work.cancel_seq = cd->seq;
- *out_bucket = hb;
- return req;
+ if (io_cancel_req_match(req, cd)) {
+ *out_bucket = hb;
+ return req;
+ }
}
spin_unlock(&hb->lock);
}