ublk: add UBLK_CMD_DEL_DEV_ASYNC
authorMing Lei <ming.lei@redhat.com>
Fri, 23 Feb 2024 07:55:39 +0000 (15:55 +0800)
committerJens Axboe <axboe@kernel.dk>
Thu, 29 Feb 2024 01:47:08 +0000 (18:47 -0700)
commit13fe8e6825e44129b6cbeee41d3012554bf8d687
tree7e105c3bdee74769f45a94251f52995f92e966ee
parent1221b9e982e181f1c37789c46fe5bfe32d97bec4
ublk: add UBLK_CMD_DEL_DEV_ASYNC

The current command UBLK_CMD_DEL_DEV won't return until the device is
released, this way looks more reliable, but makes userspace more
difficult to implement, especially about orders: unmap command
buffer(which holds one ublkc reference), ublkc close,
io_uring_file_unregister, ublkb close.

Add UBLK_CMD_DEL_DEV_ASYNC so that device deletion won't wait release,
then userspace needn't worry about the above order. Actually both loop
and nbd is deleted in this async way.

Signed-off-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20240223075539.89945-3-ming.lei@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/ublk_drv.c
include/uapi/linux/ublk_cmd.h