1e28683bdSJens Axboe // SPDX-License-Identifier: GPL-2.0 2e28683bdSJens Axboe #include <linux/kernel.h> 3e28683bdSJens Axboe #include <linux/errno.h> 4e28683bdSJens Axboe #include <linux/fs.h> 5e28683bdSJens Axboe #include <linux/file.h> 6e28683bdSJens Axboe #include <linux/io_uring.h> 7e28683bdSJens Axboe 8e28683bdSJens Axboe #include <uapi/linux/io_uring.h> 9e28683bdSJens Axboe 10e28683bdSJens Axboe #include "io_uring.h" 11e28683bdSJens Axboe #include "nop.h" 12e28683bdSJens Axboe io_nop_prep(struct io_kiocb * req,const struct io_uring_sqe * sqe)13e28683bdSJens Axboeint io_nop_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) 14e28683bdSJens Axboe { 15*a9886aadSMing Lei if (READ_ONCE(sqe->rw_flags)) 16*a9886aadSMing Lei return -EINVAL; 17e28683bdSJens Axboe return 0; 18e28683bdSJens Axboe } 19e28683bdSJens Axboe 20e28683bdSJens Axboe /* 21e28683bdSJens Axboe * IORING_OP_NOP just posts a completion event, nothing else. 22e28683bdSJens Axboe */ io_nop(struct io_kiocb * req,unsigned int issue_flags)23e28683bdSJens Axboeint io_nop(struct io_kiocb *req, unsigned int issue_flags) 24e28683bdSJens Axboe { 25e28683bdSJens Axboe io_req_set_res(req, 0, 0); 26e28683bdSJens Axboe return IOU_OK; 27e28683bdSJens Axboe } 28