Commit 8443e208 authored by Ming Lei's avatar Ming Lei Committed by Jens Axboe
Browse files

ublk: add UBLK_F_NO_AUTO_PART_SCAN feature flag



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 some cases in which user don't want to scan
partitions.

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

Reported-by: default avatarYoav Cohen <yoav@nvidia.com>
Link: https://lore.kernel.org/linux-block/DM4PR12MB63280C5637917C071C2F0D65A9A8A@DM4PR12MB6328.namprd12.prod.outlook.com/


Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 66d3af8d
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -80,7 +80,8 @@
		| UBLK_F_BUF_REG_OFF_DAEMON \
		| (IS_ENABLED(CONFIG_BLK_DEV_INTEGRITY) ? UBLK_F_INTEGRITY : 0) \
		| UBLK_F_SAFE_STOP_DEV \
		| UBLK_F_BATCH_IO)
		| UBLK_F_BATCH_IO \
		| UBLK_F_NO_AUTO_PART_SCAN)

#define UBLK_F_ALL_RECOVERY_FLAGS (UBLK_F_USER_RECOVERY \
		| UBLK_F_USER_RECOVERY_REISSUE \
@@ -4430,9 +4431,14 @@ static int ublk_ctrl_start_dev(struct ublk_device *ub,

	set_bit(UB_STATE_USED, &ub->state);

	/* Skip partition scan if disabled by user */
	if (ub->dev_info.flags & UBLK_F_NO_AUTO_PART_SCAN) {
		clear_bit(GD_SUPPRESS_PART_SCAN, &disk->state);
	} else {
		/* Schedule async partition scan for trusted daemons */
		if (!ub->unprivileged_daemons)
			schedule_work(&ub->partition_scan_work);
	}

out_put_cdev:
	if (ret) {
+3 −0
Original line number Diff line number Diff line
@@ -367,6 +367,9 @@
 */
#define UBLK_F_SAFE_STOP_DEV	(1ULL << 17)

/* Disable automatic partition scanning when device is started */
#define UBLK_F_NO_AUTO_PART_SCAN (1ULL << 18)

/* device state */
#define UBLK_S_DEV_DEAD	0
#define UBLK_S_DEV_LIVE	1