aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHao Xu <haoxu@linux.alibaba.com>2021-08-12 12:14:35 +0800
committerJens Axboe <axboe@kernel.dk>2021-08-12 11:24:13 -0600
commit6a32aa46fa0b531970581d5b425514da7f9f8e46 (patch)
tree2ce9278df0e71ebf3c1b4a1018e74ccb0b22ab47
parenta29f61590cb6265514f473577afd01bb68d0f9ab (diff)
downloadlinux-block-6a32aa46fa0b531970581d5b425514da7f9f8e46.tar.gz
io_uring: remove files pointer in cancellation functions
Notice: this object is not reachable from any branch.
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> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Notice: this object is not reachable from any branch.
-rw-r--r--fs/io_uring.c4
-rw-r--r--include/linux/io_uring.h8
-rw-r--r--kernel/exit.c2
3 files changed, 7 insertions, 7 deletions
diff --git a/fs/io_uring.c b/fs/io_uring.c
index 84fb96afb2221..25cd6986a0946 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -9211,9 +9211,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,
diff --git a/include/linux/io_uring.h b/include/linux/io_uring.h
index ed13304e764c2..2b42f9c012fb6 100644
--- a/include/linux/io_uring.h
+++ b/include/linux/io_uring.h
@@ -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)
{
diff --git a/kernel/exit.c b/kernel/exit.c
index 9a89e7f36acb4..91a43e57a32eb 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -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 */