]> www.infradead.org Git - users/hch/misc.git/commit
ublk: remove io_cmds list in ublk_queue
authorUday Shankar <ushankar@purestorage.com>
Tue, 18 Mar 2025 18:14:17 +0000 (12:14 -0600)
committerJens Axboe <axboe@kernel.dk>
Wed, 19 Mar 2025 12:32:06 +0000 (06:32 -0600)
commit989bcd623a8b0c32b76d9258767d8b37e53419e6
tree893e6a8d42c7dd7bcb56dedcb9875fb44ba99d19
parente1a0202c6bfda24002a3ae2115154fa90104c649
ublk: remove io_cmds list in ublk_queue

The current I/O dispatch mechanism - queueing I/O by adding it to the
io_cmds list (and poking task_work as needed), then dispatching it in
ublk server task context by reversing io_cmds and completing the
io_uring command associated to each one - was introduced by commit
7d4a93176e014 ("ublk_drv: don't forward io commands in reserve order")
to ensure that the ublk server received I/O in the same order that the
block layer submitted it to ublk_drv. This mechanism was only needed for
the "raw" task_work submission mechanism, since the io_uring task work
wrapper maintains FIFO ordering (using quite a similar mechanism in
fact). The "raw" task_work submission mechanism is no longer supported
in ublk_drv as of commit 29dc5d06613f2 ("ublk: kill queuing request by
task_work_add"), so the explicit llist/reversal is no longer needed - it
just duplicates logic already present in the underlying io_uring APIs.
Remove it.

Signed-off-by: Uday Shankar <ushankar@purestorage.com>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20250318-ublk_io_cmds-v1-1-c1bb74798fef@purestorage.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/ublk_drv.c