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: Caleb Sander Mateos <csander@purestorage.com>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20250821163308.977915-4-csander@purestorage.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
pull/1354/merge
Caleb Sander Mateos 2025-08-21 10:33:08 -06:00 committed by Jens Axboe
parent 3484f530f8
commit e5c717e795
1 changed files with 3 additions and 7 deletions

View File

@ -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)
return -EINVAL;
}
if (!!(ioucmd->flags & IORING_URING_CMD_MULTISHOT) !=
!!(req->flags & REQ_F_BUFFER_SELECT))
return -EINVAL;
ioucmd->cmd_op = READ_ONCE(sqe->cmd_op);