Commit e5c717e7 authored by Caleb Sander Mateos's avatar Caleb Sander Mateos Committed by Jens Axboe
Browse files

io_uring/cmd: consolidate REQ_F_BUFFER_SELECT checks



io_uring_cmd_prep() checks that REQ_F_BUFFER_SELECT is set in the
io_kiocb's flags iff IORING_URING_CMD_MULTISHOT is set in the SQE's
uring_cmd_flags. Consolidate the IORING_URING_CMD_MULTISHOT and
!IORING_URING_CMD_MULTISHOT branches into a single check that the
IORING_URING_CMD_MULTISHOT flag matches the REQ_F_BUFFER_SELECT flag.

Signed-off-by: default avatarCaleb Sander Mateos <csander@purestorage.com>
Reviewed-by: default avatarMing Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20250821163308.977915-4-csander@purestorage.com


Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 3484f530
Loading
Loading
Loading
Loading
+3 −7
Original line number Diff line number Diff line
@@ -201,13 +201,9 @@ int io_uring_cmd_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
		req->buf_index = READ_ONCE(sqe->buf_index);
	}

	if (ioucmd->flags & IORING_URING_CMD_MULTISHOT) {
		if (!(req->flags & REQ_F_BUFFER_SELECT))
			return -EINVAL;
	} else {
		if (req->flags & REQ_F_BUFFER_SELECT)
	if (!!(ioucmd->flags & IORING_URING_CMD_MULTISHOT) !=
	    !!(req->flags & REQ_F_BUFFER_SELECT))
		return -EINVAL;
	}

	ioucmd->cmd_op = READ_ONCE(sqe->cmd_op);