public inbox for linux-block@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] ublk: add UBLK_F_NO_AUTO_PART_SCAN feature flag
@ 2025-12-20  9:53 Ming Lei
  2025-12-20  9:53 ` [PATCH 1/2] " Ming Lei
  2025-12-20  9:53 ` [PATCH 2/2] ublk: add selftest for UBLK_F_NO_AUTO_PART_SCAN Ming Lei
  0 siblings, 2 replies; 6+ messages in thread
From: Ming Lei @ 2025-12-20  9:53 UTC (permalink / raw)
  To: Jens Axboe, linux-block
  Cc: Caleb Sander Mateos, Uday Shankar, Yoav Cohen, Ming Lei

Hello,

Add UBLK_F_NO_AUTO_PART_SCAN for avoiding to scan partition in start dev
command automatically, which is useful for network target.

Also add selftest code to make sure it works as expected.


Ming Lei (2):
  ublk: add UBLK_F_NO_AUTO_PART_SCAN feature flag
  ublk: add selftest for UBLK_F_NO_AUTO_PART_SCAN

 drivers/block/ublk_drv.c                      |  16 ++-
 include/uapi/linux/ublk_cmd.h                 |   8 ++
 tools/testing/selftests/ublk/Makefile         |   1 +
 tools/testing/selftests/ublk/kublk.c          |   6 +-
 tools/testing/selftests/ublk/kublk.h          |   1 +
 .../testing/selftests/ublk/test_generic_14.sh | 105 ++++++++++++++++++
 6 files changed, 133 insertions(+), 4 deletions(-)
 create mode 100755 tools/testing/selftests/ublk/test_generic_14.sh

-- 
2.47.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/2] ublk: add UBLK_F_NO_AUTO_PART_SCAN feature flag
  2025-12-20  9:53 [PATCH 0/2] ublk: add UBLK_F_NO_AUTO_PART_SCAN feature flag Ming Lei
@ 2025-12-20  9:53 ` Ming Lei
  2025-12-22 17:11   ` Caleb Sander Mateos
  2025-12-20  9:53 ` [PATCH 2/2] ublk: add selftest for UBLK_F_NO_AUTO_PART_SCAN Ming Lei
  1 sibling, 1 reply; 6+ messages in thread
From: Ming Lei @ 2025-12-20  9:53 UTC (permalink / raw)
  To: Jens Axboe, linux-block
  Cc: Caleb Sander Mateos, Uday Shankar, Yoav Cohen, Ming Lei, stable

Add a new feature flag UBLK_F_NO_AUTO_PART_SCAN to allow users to suppress
automatic partition scanning when starting a ublk device.

This is useful for network-backed devices where partition scanning
can cause issues:
- Partition scan triggers synchronous I/O during device startup
- If userspace server crashes during scan, recovery is problematic
- For remotely-managed devices, partition probing may not be needed

Users can manually trigger partition scanning later when appropriate
using standard tools (e.g., partprobe, blockdev --rereadpt).

Reported-by: Yoav Cohen <yoav@nvidia.com>
Link: https://lore.kernel.org/linux-block/DM4PR12MB63280C5637917C071C2F0D65A9A8A@DM4PR12MB6328.namprd12.prod.outlook.com/
Cc: stable@vger.kernel.org
Signed-off-by: Ming Lei <ming.lei@redhat.com>
---

- suggest to backport to stable, which is useful for avoiding problematic
  recovery, also the change is simple enough

 drivers/block/ublk_drv.c      | 16 +++++++++++++---
 include/uapi/linux/ublk_cmd.h |  8 ++++++++
 2 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c
index 78f3e22151b9..ca6ec8ed443f 100644
--- a/drivers/block/ublk_drv.c
+++ b/drivers/block/ublk_drv.c
@@ -73,7 +73,8 @@
 		| UBLK_F_AUTO_BUF_REG \
 		| UBLK_F_QUIESCE \
 		| UBLK_F_PER_IO_DAEMON \
-		| UBLK_F_BUF_REG_OFF_DAEMON)
+		| UBLK_F_BUF_REG_OFF_DAEMON \
+		| UBLK_F_NO_AUTO_PART_SCAN)
 
 #define UBLK_F_ALL_RECOVERY_FLAGS (UBLK_F_USER_RECOVERY \
 		| UBLK_F_USER_RECOVERY_REISSUE \
@@ -2930,8 +2931,13 @@ static int ublk_ctrl_start_dev(struct ublk_device *ub,
 
 	ublk_apply_params(ub);
 
-	/* don't probe partitions if any daemon task is un-trusted */
-	if (ub->unprivileged_daemons)
+	/*
+	 * Don't probe partitions if:
+	 * - any daemon task is un-trusted, or
+	 * - user explicitly requested to suppress partition scan
+	 */
+	if (ub->unprivileged_daemons ||
+	    (ub->dev_info.flags & UBLK_F_NO_AUTO_PART_SCAN))
 		set_bit(GD_SUPPRESS_PART_SCAN, &disk->state);
 
 	ublk_get_device(ub);
@@ -2947,6 +2953,10 @@ static int ublk_ctrl_start_dev(struct ublk_device *ub,
 	if (ret)
 		goto out_put_cdev;
 
+	/* allow user to probe partitions from userspace */
+	if (!ub->unprivileged_daemons &&
+	    (ub->dev_info.flags & UBLK_F_NO_AUTO_PART_SCAN))
+		clear_bit(GD_SUPPRESS_PART_SCAN, &disk->state);
 	set_bit(UB_STATE_USED, &ub->state);
 
 out_put_cdev:
diff --git a/include/uapi/linux/ublk_cmd.h b/include/uapi/linux/ublk_cmd.h
index ec77dabba45b..0827db14a215 100644
--- a/include/uapi/linux/ublk_cmd.h
+++ b/include/uapi/linux/ublk_cmd.h
@@ -311,6 +311,14 @@
  */
 #define UBLK_F_BUF_REG_OFF_DAEMON (1ULL << 14)
 
+/*
+ * If this feature is set, the kernel will not automatically scan for partitions
+ * when the device is started. This is useful for network-backed devices where
+ * partition scanning can cause deadlocks if the userspace server crashes during
+ * the scan. Users can manually trigger partition scanning later when appropriate.
+ */
+#define UBLK_F_NO_AUTO_PART_SCAN (1ULL << 15)
+
 /* device state */
 #define UBLK_S_DEV_DEAD	0
 #define UBLK_S_DEV_LIVE	1
-- 
2.47.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] ublk: add selftest for UBLK_F_NO_AUTO_PART_SCAN
  2025-12-20  9:53 [PATCH 0/2] ublk: add UBLK_F_NO_AUTO_PART_SCAN feature flag Ming Lei
  2025-12-20  9:53 ` [PATCH 1/2] " Ming Lei
@ 2025-12-20  9:53 ` Ming Lei
  1 sibling, 0 replies; 6+ messages in thread
From: Ming Lei @ 2025-12-20  9:53 UTC (permalink / raw)
  To: Jens Axboe, linux-block
  Cc: Caleb Sander Mateos, Uday Shankar, Yoav Cohen, Ming Lei

Add test_generic_14.sh to test the UBLK_F_NO_AUTO_PART_SCAN feature
flag which allows suppressing automatic partition scanning during
device startup while still allowing manual partition probing.

The test verifies:
- Normal behavior: partitions are auto-detected without the flag
- With flag: partitions are not auto-detected during START_DEV
- Manual scan: blockdev --rereadpt works with the flag

Also update kublk tool to support --no_auto_part_scan option and
recognize the feature flag.

Signed-off-by: Ming Lei <ming.lei@redhat.com>
---
 tools/testing/selftests/ublk/Makefile         |   1 +
 tools/testing/selftests/ublk/kublk.c          |   6 +-
 tools/testing/selftests/ublk/kublk.h          |   1 +
 .../testing/selftests/ublk/test_generic_14.sh | 105 ++++++++++++++++++
 4 files changed, 112 insertions(+), 1 deletion(-)
 create mode 100755 tools/testing/selftests/ublk/test_generic_14.sh

diff --git a/tools/testing/selftests/ublk/Makefile b/tools/testing/selftests/ublk/Makefile
index 770269efe42a..95831509fa45 100644
--- a/tools/testing/selftests/ublk/Makefile
+++ b/tools/testing/selftests/ublk/Makefile
@@ -21,6 +21,7 @@ TEST_PROGS += test_generic_10.sh
 TEST_PROGS += test_generic_11.sh
 TEST_PROGS += test_generic_12.sh
 TEST_PROGS += test_generic_13.sh
+TEST_PROGS += test_generic_14.sh
 
 TEST_PROGS += test_null_01.sh
 TEST_PROGS += test_null_02.sh
diff --git a/tools/testing/selftests/ublk/kublk.c b/tools/testing/selftests/ublk/kublk.c
index f8fa102a627f..46a9019299d3 100644
--- a/tools/testing/selftests/ublk/kublk.c
+++ b/tools/testing/selftests/ublk/kublk.c
@@ -1415,6 +1415,7 @@ static int cmd_dev_get_features(void)
 		FEAT_NAME(UBLK_F_QUIESCE),
 		FEAT_NAME(UBLK_F_PER_IO_DAEMON),
 		FEAT_NAME(UBLK_F_BUF_REG_OFF_DAEMON),
+		FEAT_NAME(UBLK_F_NO_AUTO_PART_SCAN),
 	};
 	struct ublk_dev *dev;
 	__u64 features = 0;
@@ -1509,7 +1510,7 @@ static void __cmd_create_help(char *exe, bool recovery)
 			exe, recovery ? "recover" : "add");
 	printf("\t[--foreground] [--quiet] [-z] [--auto_zc] [--auto_zc_fallback] [--debug_mask mask] [-r 0|1 ] [-g]\n");
 	printf("\t[-e 0|1 ] [-i 0|1] [--no_ublk_fixed_fd]\n");
-	printf("\t[--nthreads threads] [--per_io_tasks]\n");
+	printf("\t[--nthreads threads] [--per_io_tasks] [--no_auto_part_scan]\n");
 	printf("\t[target options] [backfile1] [backfile2] ...\n");
 	printf("\tdefault: nr_queues=2(max 32), depth=128(max 1024), dev_id=-1(auto allocation)\n");
 	printf("\tdefault: nthreads=nr_queues");
@@ -1572,6 +1573,7 @@ int main(int argc, char *argv[])
 		{ "nthreads",		1,	NULL,  0 },
 		{ "per_io_tasks",	0,	NULL,  0 },
 		{ "no_ublk_fixed_fd",	0,	NULL,  0 },
+		{ "no_auto_part_scan",	0,	NULL,  0 },
 		{ 0, 0, 0, 0 }
 	};
 	const struct ublk_tgt_ops *ops = NULL;
@@ -1653,6 +1655,8 @@ int main(int argc, char *argv[])
 				ctx.per_io_tasks = 1;
 			if (!strcmp(longopts[option_idx].name, "no_ublk_fixed_fd"))
 				ctx.no_ublk_fixed_fd = 1;
+			if (!strcmp(longopts[option_idx].name, "no_auto_part_scan"))
+				ctx.flags |= UBLK_F_NO_AUTO_PART_SCAN;
 			break;
 		case '?':
 			/*
diff --git a/tools/testing/selftests/ublk/kublk.h b/tools/testing/selftests/ublk/kublk.h
index fe42705c6d42..68fc2017fb20 100644
--- a/tools/testing/selftests/ublk/kublk.h
+++ b/tools/testing/selftests/ublk/kublk.h
@@ -78,6 +78,7 @@ struct dev_ctx {
 	unsigned int	auto_zc_fallback:1;
 	unsigned int	per_io_tasks:1;
 	unsigned int	no_ublk_fixed_fd:1;
+	unsigned int	no_auto_part_scan:1;
 
 	int _evtfd;
 	int _shmid;
diff --git a/tools/testing/selftests/ublk/test_generic_14.sh b/tools/testing/selftests/ublk/test_generic_14.sh
new file mode 100755
index 000000000000..15e3f39611cd
--- /dev/null
+++ b/tools/testing/selftests/ublk/test_generic_14.sh
@@ -0,0 +1,105 @@
+#!/bin/bash
+# SPDX-License-Identifier: GPL-2.0
+
+. "$(cd "$(dirname "$0")" && pwd)"/test_common.sh
+
+TID="generic_14"
+ERR_CODE=0
+
+format_backing_file()
+{
+	local backing_file=$1
+
+	# Create ublk device to write partition table
+	local tmp_dev=$(_add_ublk_dev -t loop "${backing_file}")
+	[ $? -ne 0 ] && return 1
+
+	# Write partition table with sfdisk
+	sfdisk /dev/ublkb"${tmp_dev}" > /dev/null 2>&1 <<EOF
+label: dos
+start=2048, size=100MiB, type=83
+start=206848, size=100MiB, type=83
+EOF
+	local ret=$?
+
+	"${UBLK_PROG}" del -n "${tmp_dev}"
+
+	return $ret
+}
+
+test_auto_part_scan()
+{
+	local backing_file=$1
+
+	# Create device WITHOUT --no_auto_part_scan
+	local dev_id=$(_add_ublk_dev -t loop "${backing_file}")
+	[ $? -ne 0 ] && return 1
+
+	udevadm settle
+
+	# Partitions should be auto-detected
+	if [ ! -e /dev/ublkb"${dev_id}"p1 ] || [ ! -e /dev/ublkb"${dev_id}"p2 ]; then
+		"${UBLK_PROG}" del -n "${dev_id}"
+		return 1
+	fi
+
+	"${UBLK_PROG}" del -n "${dev_id}"
+	return 0
+}
+
+test_no_auto_part_scan()
+{
+	local backing_file=$1
+
+	# Create device WITH --no_auto_part_scan
+	local dev_id=$(_add_ublk_dev -t loop --no_auto_part_scan "${backing_file}")
+	[ $? -ne 0 ] && return 1
+
+	udevadm settle
+
+	# Partitions should NOT be auto-detected
+	if [ -e /dev/ublkb"${dev_id}"p1 ]; then
+		"${UBLK_PROG}" del -n "${dev_id}"
+		return 1
+	fi
+
+	# Manual scan should work
+	blockdev --rereadpt /dev/ublkb"${dev_id}" > /dev/null 2>&1
+	udevadm settle
+
+	if [ ! -e /dev/ublkb"${dev_id}"p1 ] || [ ! -e /dev/ublkb"${dev_id}"p2 ]; then
+		"${UBLK_PROG}" del -n "${dev_id}"
+		return 1
+	fi
+
+	"${UBLK_PROG}" del -n "${dev_id}"
+	return 0
+}
+
+if ! _have_program sfdisk || ! _have_program blockdev; then
+	exit "$UBLK_SKIP_CODE"
+fi
+
+_prep_test "generic" "test UBLK_F_NO_AUTO_PART_SCAN"
+
+if ! _have_feature "UBLK_F_NO_AUTO_PART_SCAN"; then
+	_cleanup_test "generic"
+	exit "$UBLK_SKIP_CODE"
+fi
+
+
+# Create and format backing file with partition table
+_create_backfile 0 256M
+format_backing_file "${UBLK_BACKFILES[0]}"
+[ $? -ne 0 ] && ERR_CODE=255
+
+# Test normal auto partition scan
+[ "$ERR_CODE" -eq 0 ] && test_auto_part_scan "${UBLK_BACKFILES[0]}"
+[ $? -ne 0 ] && ERR_CODE=255
+
+# Test no auto partition scan with manual scan
+[ "$ERR_CODE" -eq 0 ] && test_no_auto_part_scan "${UBLK_BACKFILES[0]}"
+[ $? -ne 0 ] && ERR_CODE=255
+
+_cleanup_test "generic"
+_show_result $TID $ERR_CODE
-- 
2.47.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] ublk: add UBLK_F_NO_AUTO_PART_SCAN feature flag
  2025-12-20  9:53 ` [PATCH 1/2] " Ming Lei
@ 2025-12-22 17:11   ` Caleb Sander Mateos
  2025-12-23  2:32     ` Ming Lei
  0 siblings, 1 reply; 6+ messages in thread
From: Caleb Sander Mateos @ 2025-12-22 17:11 UTC (permalink / raw)
  To: Ming Lei; +Cc: Jens Axboe, linux-block, Uday Shankar, Yoav Cohen, stable

On Sat, Dec 20, 2025 at 4:53 AM Ming Lei <ming.lei@redhat.com> wrote:
>
> Add a new feature flag UBLK_F_NO_AUTO_PART_SCAN to allow users to suppress
> automatic partition scanning when starting a ublk device.

Is this approach superseded by your patch series "ublk: scan partition
in async way", or are you expecting both to coexist?

>
> This is useful for network-backed devices where partition scanning
> can cause issues:
> - Partition scan triggers synchronous I/O during device startup
> - If userspace server crashes during scan, recovery is problematic
> - For remotely-managed devices, partition probing may not be needed
>
> Users can manually trigger partition scanning later when appropriate
> using standard tools (e.g., partprobe, blockdev --rereadpt).
>
> Reported-by: Yoav Cohen <yoav@nvidia.com>
> Link: https://lore.kernel.org/linux-block/DM4PR12MB63280C5637917C071C2F0D65A9A8A@DM4PR12MB6328.namprd12.prod.outlook.com/
> Cc: stable@vger.kernel.org
> Signed-off-by: Ming Lei <ming.lei@redhat.com>
> ---
>
> - suggest to backport to stable, which is useful for avoiding problematic
>   recovery, also the change is simple enough

Not sure backporting to stable makes sense. It's a new feature that
requires the ublk server to opt in, so any existing ublk server being
used on a stable kernel won't be able to make use of it.

>
>  drivers/block/ublk_drv.c      | 16 +++++++++++++---
>  include/uapi/linux/ublk_cmd.h |  8 ++++++++
>  2 files changed, 21 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c
> index 78f3e22151b9..ca6ec8ed443f 100644
> --- a/drivers/block/ublk_drv.c
> +++ b/drivers/block/ublk_drv.c
> @@ -73,7 +73,8 @@
>                 | UBLK_F_AUTO_BUF_REG \
>                 | UBLK_F_QUIESCE \
>                 | UBLK_F_PER_IO_DAEMON \
> -               | UBLK_F_BUF_REG_OFF_DAEMON)
> +               | UBLK_F_BUF_REG_OFF_DAEMON \
> +               | UBLK_F_NO_AUTO_PART_SCAN)
>
>  #define UBLK_F_ALL_RECOVERY_FLAGS (UBLK_F_USER_RECOVERY \
>                 | UBLK_F_USER_RECOVERY_REISSUE \
> @@ -2930,8 +2931,13 @@ static int ublk_ctrl_start_dev(struct ublk_device *ub,
>
>         ublk_apply_params(ub);
>
> -       /* don't probe partitions if any daemon task is un-trusted */
> -       if (ub->unprivileged_daemons)
> +       /*
> +        * Don't probe partitions if:
> +        * - any daemon task is un-trusted, or
> +        * - user explicitly requested to suppress partition scan
> +        */
> +       if (ub->unprivileged_daemons ||
> +           (ub->dev_info.flags & UBLK_F_NO_AUTO_PART_SCAN))
>                 set_bit(GD_SUPPRESS_PART_SCAN, &disk->state);
>
>         ublk_get_device(ub);
> @@ -2947,6 +2953,10 @@ static int ublk_ctrl_start_dev(struct ublk_device *ub,
>         if (ret)
>                 goto out_put_cdev;
>
> +       /* allow user to probe partitions from userspace */
> +       if (!ub->unprivileged_daemons &&
> +           (ub->dev_info.flags & UBLK_F_NO_AUTO_PART_SCAN))
> +               clear_bit(GD_SUPPRESS_PART_SCAN, &disk->state);
>         set_bit(UB_STATE_USED, &ub->state);
>
>  out_put_cdev:
> diff --git a/include/uapi/linux/ublk_cmd.h b/include/uapi/linux/ublk_cmd.h
> index ec77dabba45b..0827db14a215 100644
> --- a/include/uapi/linux/ublk_cmd.h
> +++ b/include/uapi/linux/ublk_cmd.h
> @@ -311,6 +311,14 @@
>   */
>  #define UBLK_F_BUF_REG_OFF_DAEMON (1ULL << 14)
>
> +/*
> + * If this feature is set, the kernel will not automatically scan for partitions
> + * when the device is started. This is useful for network-backed devices where
> + * partition scanning can cause deadlocks if the userspace server crashes during
> + * the scan. Users can manually trigger partition scanning later when appropriate.
> + */
> +#define UBLK_F_NO_AUTO_PART_SCAN (1ULL << 15)

This is the same bit you've used for UBLK_F_BATCH_IO in your other
patch series. Are you planning to change that one?

Best,
Caleb

> +
>  /* device state */
>  #define UBLK_S_DEV_DEAD        0
>  #define UBLK_S_DEV_LIVE        1
> --
> 2.47.0
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] ublk: add UBLK_F_NO_AUTO_PART_SCAN feature flag
  2025-12-22 17:11   ` Caleb Sander Mateos
@ 2025-12-23  2:32     ` Ming Lei
  2025-12-23 20:03       ` Caleb Sander Mateos
  0 siblings, 1 reply; 6+ messages in thread
From: Ming Lei @ 2025-12-23  2:32 UTC (permalink / raw)
  To: Caleb Sander Mateos
  Cc: Jens Axboe, linux-block, Uday Shankar, Yoav Cohen, stable

On Mon, Dec 22, 2025 at 12:11:03PM -0500, Caleb Sander Mateos wrote:
> On Sat, Dec 20, 2025 at 4:53 AM Ming Lei <ming.lei@redhat.com> wrote:
> >
> > Add a new feature flag UBLK_F_NO_AUTO_PART_SCAN to allow users to suppress
> > automatic partition scanning when starting a ublk device.
> 
> Is this approach superseded by your patch series "ublk: scan partition
> in async way", or are you expecting both to coexist?

This one probably is useful too, but it should belong to v6.20 because
"ublk: scan partition in async way" can fix the issue now, and backport
to stable isn't needed any more.


Thanks,
Ming


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] ublk: add UBLK_F_NO_AUTO_PART_SCAN feature flag
  2025-12-23  2:32     ` Ming Lei
@ 2025-12-23 20:03       ` Caleb Sander Mateos
  0 siblings, 0 replies; 6+ messages in thread
From: Caleb Sander Mateos @ 2025-12-23 20:03 UTC (permalink / raw)
  To: Ming Lei; +Cc: Jens Axboe, linux-block, Uday Shankar, Yoav Cohen, stable

On Mon, Dec 22, 2025 at 9:32 PM Ming Lei <ming.lei@redhat.com> wrote:
>
> On Mon, Dec 22, 2025 at 12:11:03PM -0500, Caleb Sander Mateos wrote:
> > On Sat, Dec 20, 2025 at 4:53 AM Ming Lei <ming.lei@redhat.com> wrote:
> > >
> > > Add a new feature flag UBLK_F_NO_AUTO_PART_SCAN to allow users to suppress
> > > automatic partition scanning when starting a ublk device.
> >
> > Is this approach superseded by your patch series "ublk: scan partition
> > in async way", or are you expecting both to coexist?
>
> This one probably is useful too, but it should belong to v6.20 because
> "ublk: scan partition in async way" can fix the issue now, and backport
> to stable isn't needed any more.

Sure, I think it could be useful for other ublk servers too that know
the block devices they expose won't be partitioned or want to more
finely control when/whether the partition scan happens.

Best,
Caleb

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2025-12-23 20:03 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-20  9:53 [PATCH 0/2] ublk: add UBLK_F_NO_AUTO_PART_SCAN feature flag Ming Lei
2025-12-20  9:53 ` [PATCH 1/2] " Ming Lei
2025-12-22 17:11   ` Caleb Sander Mateos
2025-12-23  2:32     ` Ming Lei
2025-12-23 20:03       ` Caleb Sander Mateos
2025-12-20  9:53 ` [PATCH 2/2] ublk: add selftest for UBLK_F_NO_AUTO_PART_SCAN Ming Lei

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox