diff options
Diffstat (limited to 'io_uring/cancel.c')
-rw-r--r-- | io_uring/cancel.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/io_uring/cancel.c b/io_uring/cancel.c index a5d51471fe..8a8b07dfc4 100644 --- a/io_uring/cancel.c +++ b/io_uring/cancel.c @@ -15,6 +15,8 @@ #include "tctx.h" #include "poll.h" #include "timeout.h" +#include "waitid.h" +#include "futex.h" #include "cancel.h" struct io_cancel { @@ -119,6 +121,14 @@ int io_try_cancel(struct io_uring_task *tctx, struct io_cancel_data *cd, if (ret != -ENOENT) return ret; + ret = io_waitid_cancel(ctx, cd, issue_flags); + if (ret != -ENOENT) + return ret; + + ret = io_futex_cancel(ctx, cd, issue_flags); + if (ret != -ENOENT) + return ret; + spin_lock(&ctx->completion_lock); if (!(cd->flags & IORING_ASYNC_CANCEL_FD)) ret = io_timeout_cancel(ctx, cd); |