diff --git a/include/linux/io_uring.h b/include/linux/io_uring.h index 68ed6697fece..d4264bea0e64 100644 --- a/include/linux/io_uring.h +++ b/include/linux/io_uring.h @@ -16,10 +16,8 @@ bool io_is_uring_fops(struct file *file); static inline void io_uring_files_cancel(void) { - if (current->io_uring) { - io_uring_unreg_ringfd(); + if (current->io_uring) __io_uring_cancel(false); - } } static inline void io_uring_task_cancel(void) { diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index f0fd39507597..87dc27e937ea 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -3449,6 +3449,7 @@ end_wait: void __io_uring_cancel(bool cancel_all) { + io_uring_unreg_ringfd(); io_uring_cancel_generic(cancel_all, NULL); }