... and replace it by calls to the new API. Signed-off-by: Martin Wilck <mwilck@xxxxxxxx> --- libmultipath/devmapper.c | 53 +++++++++------------------------------- 1 file changed, 11 insertions(+), 42 deletions(-) diff --git a/libmultipath/devmapper.c b/libmultipath/devmapper.c index bdeba48..56157af 100644 --- a/libmultipath/devmapper.c +++ b/libmultipath/devmapper.c @@ -783,6 +783,13 @@ int libmp_mapinfo(int flags, mapid_t id, mapinfo_t info) libmp_map_identifier(flags, id, idbuf)); } +static int dm_get_dm_uuid(const char *mapname, char uuid[DM_UUID_LEN]) +{ + return libmp_mapinfo(DM_MAP_BY_NAME, + (mapid_t) { .str = mapname }, + (mapinfo_t) { .uuid = uuid }); +} + int dm_get_map(const char *name, unsigned long long *size, char **outparams) { struct dm_task __attribute__((cleanup(cleanup_dm_task))) *dmt = NULL; @@ -822,48 +829,11 @@ int dm_get_map(const char *name, unsigned long long *size, char **outparams) } } -static int -dm_get_prefixed_uuid(const char *name, char *uuid, int uuid_len) -{ - struct dm_task *dmt; - const char *uuidtmp; - struct dm_info info; - int r = 1; - - dmt = libmp_dm_task_create(DM_DEVICE_INFO); - if (!dmt) - return 1; - - if (uuid_len > 0) - uuid[0] = '\0'; - - if (!dm_task_set_name (dmt, name)) - goto uuidout; - - if (!libmp_dm_task_run(dmt)) { - dm_log_error(3, DM_DEVICE_INFO, dmt); - goto uuidout; - } - - if (!dm_task_get_info(dmt, &info) || - !info.exists) - goto uuidout; - - uuidtmp = dm_task_get_uuid(dmt); - if (uuidtmp) - strlcpy(uuid, uuidtmp, uuid_len); - - r = 0; -uuidout: - dm_task_destroy(dmt); - return r; -} - int dm_get_uuid(const char *name, char *uuid, int uuid_len) { char tmp[DM_UUID_LEN]; - if (dm_get_prefixed_uuid(name, tmp, sizeof(tmp))) + if (dm_get_dm_uuid(name, tmp) != DMP_OK) return 1; if (!strncmp(tmp, UUID_PREFIX, UUID_PREFIX_LEN)) @@ -874,16 +844,15 @@ int dm_get_uuid(const char *name, char *uuid, int uuid_len) return 0; } -static int -is_mpath_part(const char *part_name, const char *map_name) +static int is_mpath_part(const char *part_name, const char *map_name) { char *p; char part_uuid[DM_UUID_LEN], map_uuid[DM_UUID_LEN]; - if (dm_get_prefixed_uuid(part_name, part_uuid, sizeof(part_uuid))) + if (dm_get_dm_uuid(part_name, part_uuid) != DMP_OK) return 0; - if (dm_get_prefixed_uuid(map_name, map_uuid, sizeof(map_uuid))) + if (dm_get_dm_uuid(map_name, map_uuid) != DMP_OK) return 0; if (strncmp(part_uuid, "part", 4) != 0) -- 2.45.2