xref: /openbmc/linux/io_uring/nop.c (revision a9886aad)
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 Axboe int io_nop_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
14e28683bdSJens Axboe {
15a9886aadSMing Lei 	if (READ_ONCE(sqe->rw_flags))
16a9886aadSMing 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 Axboe int 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