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 #include <uapi/linux/io_uring.h> 8 9 #if defined(CONFIG_IO_URING) 10 void __io_uring_cancel(bool cancel_all); 11 void __io_uring_free(struct task_struct *tsk); 12 void io_uring_unreg_ringfd(void); 13 const char *io_uring_get_opcode(u8 opcode); 14 int io_uring_cmd_sock(struct io_uring_cmd *cmd, unsigned int issue_flags); 15 bool io_is_uring_fops(struct file *file); 16 io_uring_files_cancel(void)17static inline void io_uring_files_cancel(void) 18 { 19 if (current->io_uring) { 20 io_uring_unreg_ringfd(); 21 __io_uring_cancel(false); 22 } 23 } io_uring_task_cancel(void)24static inline void io_uring_task_cancel(void) 25 { 26 if (current->io_uring) 27 __io_uring_cancel(true); 28 } io_uring_free(struct task_struct * tsk)29static inline void io_uring_free(struct task_struct *tsk) 30 { 31 if (tsk->io_uring) 32 __io_uring_free(tsk); 33 } 34 #else io_uring_task_cancel(void)35static inline void io_uring_task_cancel(void) 36 { 37 } io_uring_files_cancel(void)38static inline void io_uring_files_cancel(void) 39 { 40 } io_uring_free(struct task_struct * tsk)41static inline void io_uring_free(struct task_struct *tsk) 42 { 43 } io_uring_get_opcode(u8 opcode)44static inline const char *io_uring_get_opcode(u8 opcode) 45 { 46 return ""; 47 } io_uring_cmd_sock(struct io_uring_cmd * cmd,unsigned int issue_flags)48static inline int io_uring_cmd_sock(struct io_uring_cmd *cmd, 49 unsigned int issue_flags) 50 { 51 return -EOPNOTSUPP; 52 } io_is_uring_fops(struct file * file)53static inline bool io_is_uring_fops(struct file *file) 54 { 55 return false; 56 } 57 #endif 58 59 #endif 60