io_uring: remove files pointer in cancellation functions
authorHao Xu <haoxu@linux.alibaba.com>
Thu, 12 Aug 2021 04:14:35 +0000 (12:14 +0800)
committerJens Axboe <axboe@kernel.dk>
Mon, 23 Aug 2021 19:10:37 +0000 (13:10 -0600)
When doing cancellation, we use a parameter to indicate where it's from
do_exit or exec. So a boolean value is good enough for this, remove the
struct files* as it is not necessary.

Signed-off-by: Hao Xu <haoxu@linux.alibaba.com>
[axboe: fixup io_uring_files_cancel for !CONFIG_IO_URING]
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c
include/linux/io_uring.h
kernel/exit.c

index 4f5a0070764471a7058cd713268c9f78a8f782fc..7626cad93f60447b3de95c45428af846ba2f1ce4 100644 (file)
@@ -9213,9 +9213,9 @@ static void io_uring_cancel_generic(bool cancel_all, struct io_sq_data *sqd)
        }
 }
 
-void __io_uring_cancel(struct files_struct *files)
+void __io_uring_cancel(bool cancel_all)
 {
-       io_uring_cancel_generic(!files, NULL);
+       io_uring_cancel_generic(cancel_all, NULL);
 }
 
 static void *io_uring_validate_mmap_request(struct file *file,
index ed13304e764c2c584d53956cdbb3cd6dd9bbd475..649a4d7c241bccb14099cbcbc427f6163ea8dc5c 100644 (file)
@@ -7,18 +7,18 @@
 
 #if defined(CONFIG_IO_URING)
 struct sock *io_uring_get_socket(struct file *file);
-void __io_uring_cancel(struct files_struct *files);
+void __io_uring_cancel(bool cancel_all);
 void __io_uring_free(struct task_struct *tsk);
 
-static inline void io_uring_files_cancel(struct files_struct *files)
+static inline void io_uring_files_cancel(void)
 {
        if (current->io_uring)
-               __io_uring_cancel(files);
+               __io_uring_cancel(false);
 }
 static inline void io_uring_task_cancel(void)
 {
        if (current->io_uring)
-               __io_uring_cancel(NULL);
+               __io_uring_cancel(true);
 }
 static inline void io_uring_free(struct task_struct *tsk)
 {
@@ -33,7 +33,7 @@ static inline struct sock *io_uring_get_socket(struct file *file)
 static inline void io_uring_task_cancel(void)
 {
 }
-static inline void io_uring_files_cancel(struct files_struct *files)
+static inline void io_uring_files_cancel(void)
 {
 }
 static inline void io_uring_free(struct task_struct *tsk)
index 9a89e7f36acb4382efca6855b4c01b74820a8dd5..91a43e57a32ebbf155287f580094e3c0f66e1188 100644 (file)
@@ -777,7 +777,7 @@ void __noreturn do_exit(long code)
                schedule();
        }
 
-       io_uring_files_cancel(tsk->files);
+       io_uring_files_cancel();
        exit_signals(tsk);  /* sets PF_EXITING */
 
        /* sync mm's RSS info before statistics gathering */