diff --git a/patches.kernel.org/6.2.12-086-block-ublk_drv-mark-device-as-LIVE-before-addi.patch b/patches.kernel.org/6.2.12-086-block-ublk_drv-mark-device-as-LIVE-before-addi.patch new file mode 100644 index 0000000..b8c8b88 --- /dev/null +++ b/patches.kernel.org/6.2.12-086-block-ublk_drv-mark-device-as-LIVE-before-addi.patch @@ -0,0 +1,53 @@ +From: Ming Lei +Date: Sat, 18 Mar 2023 22:12:31 +0800 +Subject: [PATCH] block: ublk_drv: mark device as LIVE before adding disk +References: bsc#1012628 +Patch-mainline: 6.2.12 +Git-commit: 4985e7b2c002eb4c5c794a1d3acd91b82c89a0fd + +[ Upstream commit 4985e7b2c002eb4c5c794a1d3acd91b82c89a0fd ] + +IO can be started before add_disk() returns, such as reading parititon table, +then the monitor work should work for making forward progress. + +So mark device as LIVE before adding disk, meantime change to +DEAD if add_disk() fails. + +Fixed: 71f28f3136af ("ublk_drv: add io_uring based userspace block driver") +Reviewed-by: Ziyang Zhang +Signed-off-by: Ming Lei +Link: https://lore.kernel.org/r/20230318141231.55562-1-ming.lei@redhat.com +Signed-off-by: Jens Axboe +Signed-off-by: Sasha Levin +Signed-off-by: Jiri Slaby +--- + drivers/block/ublk_drv.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c +index 2ed994a3..c0cbc5f3 100644 +--- a/drivers/block/ublk_drv.c ++++ b/drivers/block/ublk_drv.c +@@ -1571,17 +1571,18 @@ static int ublk_ctrl_start_dev(struct io_uring_cmd *cmd) + set_bit(GD_SUPPRESS_PART_SCAN, &disk->state); + + get_device(&ub->cdev_dev); ++ ub->dev_info.state = UBLK_S_DEV_LIVE; + ret = add_disk(disk); + if (ret) { + /* + * Has to drop the reference since ->free_disk won't be + * called in case of add_disk failure. + */ ++ ub->dev_info.state = UBLK_S_DEV_DEAD; + ublk_put_device(ub); + goto out_put_disk; + } + set_bit(UB_STATE_USED, &ub->state); +- ub->dev_info.state = UBLK_S_DEV_LIVE; + out_put_disk: + if (ret) + put_disk(disk); +-- +2.35.3 + diff --git a/series.conf b/series.conf index 92b256b..0183d79 100644 --- a/series.conf +++ b/series.conf @@ -2313,6 +2313,7 @@ patches.kernel.org/6.2.12-083-i2c-imx-lpi2c-clean-rx-tx-buffers-upon-new-mes.patch patches.kernel.org/6.2.12-084-i2c-hisi-Avoid-redundant-interrupts.patch patches.kernel.org/6.2.12-085-efi-sysfb_efi-Add-quirk-for-Lenovo-Yoga-Book-X.patch + patches.kernel.org/6.2.12-086-block-ublk_drv-mark-device-as-LIVE-before-addi.patch ######################################################## # Build fixes that apply to the vanilla kernel too.