diff options
| author | Jens Axboe <axboe@kernel.dk> | 2025-02-05 12:48:56 -0700 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2025-02-17 05:34:45 -0700 |
| commit | 1533376b131f5d76f8739e89efc78c4687d96bd3 (patch) | |
| tree | 2106075391dced301b531b4d34377a35ac941da5 /io_uring/cancel.h | |
| parent | 5d3e51240d89678b87b5dc6987ea572048a0f0eb (diff) | |
io_uring/cancel: add generic remove_all helper
Any opcode that is cancelable ends up defining its own remove all
helper, which iterates the pending list and cancels matches. Add a
generic helper for it, which can be used by them.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'io_uring/cancel.h')
| -rw-r--r-- | io_uring/cancel.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/io_uring/cancel.h b/io_uring/cancel.h index bbfea2cd00ea..80734a0a2b26 100644 --- a/io_uring/cancel.h +++ b/io_uring/cancel.h @@ -24,6 +24,10 @@ int io_try_cancel(struct io_uring_task *tctx, struct io_cancel_data *cd, int io_sync_cancel(struct io_ring_ctx *ctx, void __user *arg); bool io_cancel_req_match(struct io_kiocb *req, struct io_cancel_data *cd); +bool io_cancel_remove_all(struct io_ring_ctx *ctx, struct io_uring_task *tctx, + struct hlist_head *list, bool cancel_all, + bool (*cancel)(struct io_kiocb *)); + static inline bool io_cancel_match_sequence(struct io_kiocb *req, int sequence) { if (req->cancel_seq_set && sequence == req->work.cancel_seq) |
