diff --git a/lib/commands/toolcontext.c b/lib/commands/toolcontext.c index 2666d7b42..b630554a9 100644 --- a/lib/commands/toolcontext.c +++ b/lib/commands/toolcontext.c @@ -643,6 +643,7 @@ static int _process_config(struct cmd_context *cmd) if (!dm_set_uuid_prefix(UUID_PREFIX)) return_0; #endif + cmd->device_id_sysfs_dir = find_config_tree_str(cmd, devices_device_id_sysfs_dir_CFG, NULL); dev_ext_info_src = find_config_tree_str(cmd, devices_external_device_info_source_CFG, NULL); diff --git a/lib/commands/toolcontext.h b/lib/commands/toolcontext.h index eb2d1922b..32bfda57a 100644 --- a/lib/commands/toolcontext.h +++ b/lib/commands/toolcontext.h @@ -247,6 +247,7 @@ struct cmd_context { * Paths. */ const char *lib_dir; /* cache value global/library_dir */ + const char *device_id_sysfs_dir; char system_dir[PATH_MAX]; char dev_dir[PATH_MAX]; char proc_dir[PATH_MAX]; diff --git a/lib/device/device_id.c b/lib/device/device_id.c index 252654861..34469e262 100644 --- a/lib/device/device_id.c +++ b/lib/device/device_id.c @@ -193,9 +193,7 @@ static int _read_sys_block(struct cmd_context *cmd, struct device *dev, dev_t prim = 0; int ret; - if (!(sysfs_dir = find_config_tree_str(cmd, devices_device_id_sysfs_dir_CFG, NULL))) - sysfs_dir = dm_sysfs_dir(); - + sysfs_dir = cmd->device_id_sysfs_dir ?: dm_sysfs_dir(); retry: if (dm_snprintf(path, sizeof(path), "%sdev/block/%d:%d/%s", sysfs_dir, (int)MAJOR(devt), (int)MINOR(devt), suffix) < 0) {