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