[PATCH 0/2] io_uring passthru: set result on blk-mq request completion
Caleb Sander Mateos <[email protected]>
| Newsgroups | org.infradead.lists.linux-nvme,dev.linux.lists.fuse-devel,org.kernel.vger.io-uring,org.kernel.vger.linux-block,org.kernel.vger.linux-btrfs,org.kernel.vger.linux-kernel,org.kernel.vger.linux-scsi |
|---|---|
| Message-ID | <[email protected]> |
io_uring NVMe passthru currently receives the NVMe status and result in the blk-mq request completion callback nvme_uring_cmd_end_io() but doesn't post the io_uring CQE until the io_uring task work callback nvme_uring_task_cb(). The status and result must be plumbed through struct nvme_uring_cmd_pdu, taking up 16 bytes of the 32 available. Store the status and result on the io_uring request in nvme_uring_cmd_end_io() instead of nvme_uring_task_cb() so it doesn't need to be passed through struct nvme_uring_cmd_pdu. Caleb Sander Mateos (2): io_uring/cmd: split io_uring_cmd_set_res() from io_uring_cmd_done() nvme/ioctl: call io_uring_cmd_set_res32() in ->end_io() block/ioctl.c | 10 ++++++---- drivers/block/ublk_drv.c | 26 ++++++++++++++++++-------- drivers/nvme/host/ioctl.c | 19 +++++++++---------- drivers/scsi/scsi_bsg.c | 4 ++-- fs/btrfs/ioctl.c | 3 ++- fs/fuse/dev_uring.c | 15 ++++++++++----- include/linux/io_uring/cmd.h | 29 +++++++++++++---------------- io_uring/uring_cmd.c | 34 ++++++++++++++++++++++------------ 8 files changed, 82 insertions(+), 58 deletions(-) -- 2.55.0