mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
libdm: introduce and use DEV_UUID macro
To automatically prefer mangled UUID over unmangled UUID. The same logic that is already used for dm name mangling...
This commit is contained in:
parent
8dccbae35e
commit
842167eb17
@ -1083,7 +1083,7 @@ static struct dm_ioctl *_flatten(struct dm_task *dmt, unsigned repeat_count)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Does driver support device number referencing? */
|
/* Does driver support device number referencing? */
|
||||||
if (_dm_version_minor < 3 && !DEV_NAME(dmt) && !dmt->uuid && dmi->dev) {
|
if (_dm_version_minor < 3 && !DEV_NAME(dmt) && !DEV_UUID(dmt) && dmi->dev) {
|
||||||
if (!_lookup_dev_name(dmi->dev, dmi->name, sizeof(dmi->name))) {
|
if (!_lookup_dev_name(dmi->dev, dmi->name, sizeof(dmi->name))) {
|
||||||
log_error("Unable to find name for device (%" PRIu32
|
log_error("Unable to find name for device (%" PRIu32
|
||||||
":%" PRIu32 ")", dmt->major, dmt->minor);
|
":%" PRIu32 ")", dmt->major, dmt->minor);
|
||||||
@ -1099,8 +1099,8 @@ static struct dm_ioctl *_flatten(struct dm_task *dmt, unsigned repeat_count)
|
|||||||
dmt->major < 0))
|
dmt->major < 0))
|
||||||
strncpy(dmi->name, DEV_NAME(dmt), sizeof(dmi->name));
|
strncpy(dmi->name, DEV_NAME(dmt), sizeof(dmi->name));
|
||||||
|
|
||||||
if (dmt->uuid)
|
if (DEV_UUID(dmt))
|
||||||
strncpy(dmi->uuid, dmt->uuid, sizeof(dmi->uuid));
|
strncpy(dmi->uuid, DEV_UUID(dmt), sizeof(dmi->uuid));
|
||||||
|
|
||||||
if (dmt->type == DM_DEVICE_SUSPEND)
|
if (dmt->type == DM_DEVICE_SUSPEND)
|
||||||
dmi->flags |= DM_SUSPEND_FLAG;
|
dmi->flags |= DM_SUSPEND_FLAG;
|
||||||
@ -1510,7 +1510,7 @@ static int _check_children_not_suspended_v4(struct dm_task *dmt, uint64_t device
|
|||||||
else
|
else
|
||||||
log_error(INTERNAL_ERROR "Attempt to suspend device %s%s%s%.0d%s%.0d%s%s"
|
log_error(INTERNAL_ERROR "Attempt to suspend device %s%s%s%.0d%s%.0d%s%s"
|
||||||
"that uses already-suspended device (%u:%u)",
|
"that uses already-suspended device (%u:%u)",
|
||||||
DEV_NAME(dmt) ? : "", dmt->uuid ? : "",
|
DEV_NAME(dmt) ? : "", DEV_UUID(dmt) ? : "",
|
||||||
dmt->major > 0 ? "(" : "",
|
dmt->major > 0 ? "(" : "",
|
||||||
dmt->major > 0 ? dmt->major : 0,
|
dmt->major > 0 ? dmt->major : 0,
|
||||||
dmt->major > 0 ? ":" : "",
|
dmt->major > 0 ? ":" : "",
|
||||||
@ -1792,6 +1792,7 @@ int dm_task_run(struct dm_task *dmt)
|
|||||||
unsigned ioctl_retry = 1;
|
unsigned ioctl_retry = 1;
|
||||||
int retryable = 0;
|
int retryable = 0;
|
||||||
const char *dev_name = DEV_NAME(dmt);
|
const char *dev_name = DEV_NAME(dmt);
|
||||||
|
const char *dev_uuid = DEV_UUID(dmt);
|
||||||
|
|
||||||
if ((unsigned) dmt->type >=
|
if ((unsigned) dmt->type >=
|
||||||
(sizeof(_cmd_data_v4) / sizeof(*_cmd_data_v4))) {
|
(sizeof(_cmd_data_v4) / sizeof(*_cmd_data_v4))) {
|
||||||
@ -1807,7 +1808,7 @@ int dm_task_run(struct dm_task *dmt)
|
|||||||
return _create_and_load_v4(dmt);
|
return _create_and_load_v4(dmt);
|
||||||
|
|
||||||
if (dmt->type == DM_DEVICE_MKNODES && !dev_name &&
|
if (dmt->type == DM_DEVICE_MKNODES && !dev_name &&
|
||||||
!dmt->uuid && dmt->major <= 0)
|
!dev_uuid && dmt->major <= 0)
|
||||||
return _mknodes_v4(dmt);
|
return _mknodes_v4(dmt);
|
||||||
|
|
||||||
if ((dmt->type == DM_DEVICE_RELOAD) && dmt->suppress_identical_reload)
|
if ((dmt->type == DM_DEVICE_RELOAD) && dmt->suppress_identical_reload)
|
||||||
@ -1828,8 +1829,8 @@ int dm_task_run(struct dm_task *dmt)
|
|||||||
"%s%s%s %s%.0d%s%.0d%s%s",
|
"%s%s%s %s%.0d%s%.0d%s%s",
|
||||||
suspended_counter,
|
suspended_counter,
|
||||||
dev_name ? : "",
|
dev_name ? : "",
|
||||||
dmt->uuid ? " UUID " : "",
|
dev_uuid ? " UUID " : "",
|
||||||
dmt->uuid ? : "",
|
dev_uuid ? : "",
|
||||||
dmt->major > 0 ? "(" : "",
|
dmt->major > 0 ? "(" : "",
|
||||||
dmt->major > 0 ? dmt->major : 0,
|
dmt->major > 0 ? dmt->major : 0,
|
||||||
dmt->major > 0 ? ":" : "",
|
dmt->major > 0 ? ":" : "",
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#define DM_DEFAULT_NAME_MANGLING_MODE_ENV_VAR_NAME "DM_DEFAULT_NAME_MANGLING_MODE"
|
#define DM_DEFAULT_NAME_MANGLING_MODE_ENV_VAR_NAME "DM_DEFAULT_NAME_MANGLING_MODE"
|
||||||
|
|
||||||
#define DEV_NAME(dmt) (dmt->mangled_dev_name ? : dmt->dev_name)
|
#define DEV_NAME(dmt) (dmt->mangled_dev_name ? : dmt->dev_name)
|
||||||
|
#define DEV_UUID(DMT) (dmt->mangled_uuid ? : dmt->uuid)
|
||||||
|
|
||||||
int mangle_string(const char *str, const char *str_name, size_t len,
|
int mangle_string(const char *str, const char *str_name, size_t len,
|
||||||
char *buf, size_t buf_len, dm_string_mangling_t mode);
|
char *buf, size_t buf_len, dm_string_mangling_t mode);
|
||||||
|
Loading…
Reference in New Issue
Block a user