mirror of
https://github.com/torvalds/linux.git
synced 2026-03-14 04:26:15 +01:00
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: Yoav Cohen <yoav@nvidia.com> Link: https://lore.kernel.org/linux-block/DM4PR12MB63280C5637917C071C2F0D65A9A8A@DM4PR12MB6328.namprd12.prod.outlook.com/ Signed-off-by: Ming Lei <ming.lei@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
66d3af8d5d
commit
8443e2087e
2 changed files with 13 additions and 4 deletions
|
|
@ -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);
|
||||
|
||||
/* Schedule async partition scan for trusted daemons */
|
||||
if (!ub->unprivileged_daemons)
|
||||
schedule_work(&ub->partition_scan_work);
|
||||
/* 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) {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue