Signed-off-by: Martin Wilck <[email protected]>
---
libmultipath/devmapper.c | 34 ++++++----------------------------
1 file changed, 6 insertions(+), 28 deletions(-)
diff --git a/libmultipath/devmapper.c b/libmultipath/devmapper.c
index 1eebcb5..caa8385 100644
--- a/libmultipath/devmapper.c
+++ b/libmultipath/devmapper.c
@@ -1469,37 +1469,15 @@ dm_is_suspended(const char *name)
return info.suspended;
}
-char *
-dm_mapname(int major, int minor)
+char *dm_mapname(int major, int minor)
{
- char * response = NULL;
- const char *map;
- struct dm_task *dmt;
- int r;
+ char name[WWID_SIZE];
- if (!(dmt = libmp_dm_task_create(DM_DEVICE_INFO)))
+ if (libmp_mapinfo(DM_MAP_BY_DEV,
+ (mapid_t) { ._u = { major, minor } },
+ (mapinfo_t) { .name = name }) != DMP_OK)
return NULL;
-
- if (!dm_task_set_major(dmt, major) ||
- !dm_task_set_minor(dmt, minor))
- goto bad;
-
- r = libmp_dm_task_run(dmt);
- if (!r) {
- dm_log_error(2, DM_DEVICE_INFO, dmt);
- goto bad;
- }
-
- map = dm_task_get_name(dmt);
- if (map && strlen(map))
- response = strdup((const char *)map);
-
- dm_task_destroy(dmt);
- return response;
-bad:
- dm_task_destroy(dmt);
- condlog(0, "%i:%i: error fetching map name", major, minor);
- return NULL;
+ return strdup(name);
}
static int
--
2.45.2