1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 #ifndef _LINUX_IO_URING_H 3 #define _LINUX_IO_URING_H 4 5 #include <linux/sched.h> 6 #include <linux/xarray.h> 7 8 #if defined(CONFIG_IO_URING) 9 struct sock *io_uring_get_socket(struct file *file); 10 void __io_uring_cancel(bool cancel_all); 11 void __io_uring_free(struct task_struct *tsk); 12 13 static inline void io_uring_files_cancel(void) 14 { 15 if (current->io_uring) 16 __io_uring_cancel(false); 17 } 18 static inline void io_uring_task_cancel(void) 19 { 20 if (current->io_uring) 21 __io_uring_cancel(true); 22 } 23 static inline void io_uring_free(struct task_struct *tsk) 24 { 25 if (tsk->io_uring) 26 __io_uring_free(tsk); 27 } 28 #else 29 static inline struct sock *io_uring_get_socket(struct file *file) 30 { 31 return NULL; 32 } 33 static inline void io_uring_task_cancel(void) 34 { 35 } 36 static inline void io_uring_files_cancel(void) 37 { 38 } 39 static inline void io_uring_free(struct task_struct *tsk) 40 { 41 } 42 #endif 43 44 #endif 45