mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-18 10:04:20 +03:00
libdm: add mangling support for dm_task_set_newuuid
This commit is contained in:
parent
a621795a3c
commit
7e71ecbaf6
@ -736,11 +736,32 @@ int dm_task_set_add_node(struct dm_task *dmt, dm_add_node_t add_node)
|
|||||||
|
|
||||||
int dm_task_set_newuuid(struct dm_task *dmt, const char *newuuid)
|
int dm_task_set_newuuid(struct dm_task *dmt, const char *newuuid)
|
||||||
{
|
{
|
||||||
|
dm_string_mangling_t mangling_mode = dm_get_name_mangling_mode();
|
||||||
|
char mangled_uuid[DM_UUID_LEN];
|
||||||
|
int r = 0;
|
||||||
|
|
||||||
if (strlen(newuuid) >= DM_UUID_LEN) {
|
if (strlen(newuuid) >= DM_UUID_LEN) {
|
||||||
log_error("Uuid \"%s\" too long", newuuid);
|
log_error("Uuid \"%s\" too long", newuuid);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!check_multiple_mangled_string_allowed(newuuid, "new UUID", mangling_mode))
|
||||||
|
return_0;
|
||||||
|
|
||||||
|
if (mangling_mode != DM_STRING_MANGLING_NONE &&
|
||||||
|
(r = mangle_string(newuuid, "new UUID", strlen(newuuid), mangled_uuid,
|
||||||
|
sizeof(mangled_uuid), mangling_mode)) < 0) {
|
||||||
|
log_error("Failed to mangle new device UUID \"%s\"", newuuid);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (r) {
|
||||||
|
log_debug("New device uuid mangled [%s]: %s --> %s",
|
||||||
|
mangling_mode == DM_STRING_MANGLING_AUTO ? "auto" : "hex",
|
||||||
|
newuuid, mangled_uuid);
|
||||||
|
newuuid = mangled_uuid;
|
||||||
|
}
|
||||||
|
|
||||||
if (!(dmt->newname = dm_strdup(newuuid))) {
|
if (!(dmt->newname = dm_strdup(newuuid))) {
|
||||||
log_error("dm_task_set_newuuid: strdup(%s) failed", newuuid);
|
log_error("dm_task_set_newuuid: strdup(%s) failed", newuuid);
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user