1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 #ifndef _LINUX_IO_URING_H
3 #define _LINUX_IO_URING_H
5 #include <linux/sched.h>
6 #include <linux/xarray.h>
9 struct files_struct *files;
11 #ifdef CONFIG_BLK_CGROUP
12 struct cgroup_subsys_state *blkcg_css;
14 const struct cred *creds;
15 struct nsproxy *nsproxy;
21 struct io_uring_task {
24 struct wait_queue_head wait;
26 struct percpu_counter inflight;
27 struct io_identity __identity;
28 struct io_identity *identity;
32 #if defined(CONFIG_IO_URING)
33 struct sock *io_uring_get_socket(struct file *file);
34 void __io_uring_task_cancel(void);
35 void __io_uring_files_cancel(struct files_struct *files);
36 void __io_uring_free(struct task_struct *tsk);
38 static inline void io_uring_task_cancel(void)
40 if (current->io_uring && !xa_empty(¤t->io_uring->xa))
41 __io_uring_task_cancel();
43 static inline void io_uring_files_cancel(struct files_struct *files)
45 if (current->io_uring && !xa_empty(¤t->io_uring->xa))
46 __io_uring_files_cancel(files);
48 static inline void io_uring_free(struct task_struct *tsk)
54 static inline struct sock *io_uring_get_socket(struct file *file)
58 static inline void io_uring_task_cancel(void)
61 static inline void io_uring_files_cancel(struct files_struct *files)
64 static inline void io_uring_free(struct task_struct *tsk)