@@ -794,45 +794,6 @@ int libmp_mapinfo(int flags, mapid_t id, mapinfo_t info)
libmp_map_identifier(flags, id, idbuf));
}
-int
-dm_get_info(const char *name, struct dm_info *info)
-{
- int r = -1;
- struct dm_task *dmt;
-
- if (!name || !info)
- return r;
-
- if (!(dmt = libmp_dm_task_create(DM_DEVICE_INFO)))
- return r;
-
- if (!dm_task_set_name(dmt, name))
- goto out;
-
- if (!libmp_dm_task_run(dmt)) {
- dm_log_error(3, DM_DEVICE_INFO, dmt);
- goto out;
- }
-
- if (!dm_task_get_info(dmt, info))
- goto out;
-
- if (!info->exists)
- goto out;
-
- r = 0;
-out:
- dm_task_destroy(dmt);
- return r;
-}
-
-int dm_map_present(const char * str)
-{
- struct dm_info info;
-
- return (dm_get_info(str, &info) == 0);
-}
-
int dm_get_map(const char *name, unsigned long long *size, char **outparams)
{
struct dm_task __attribute__((cleanup(cleanup_dm_task))) *dmt = NULL;
@@ -1131,15 +1092,14 @@ out:
return r;
}
-static int
-dm_dev_t (const char * mapname, char * dev_t, int len)
+static int dm_dev_t (const char *mapname, char *dev_t, int len)
{
struct dm_info info;
- if (dm_get_info(mapname, &info) != 0)
+ if (dm_get_info(mapname, &info) != DMP_OK)
return 1;
- if (snprintf(dev_t, len, "%i:%i", info.major, info.minor) > len)
+ if (safe_snprintf(dev_t, len, "%i:%i", info.major, info.minor))
return 1;
return 0;
@@ -1180,7 +1140,7 @@ dm_get_major_minor(const char *name, int *major, int *minor)
{
struct dm_info info;
- if (dm_get_info(name, &info) != 0)
+ if (dm_get_info(name, &info) != DMP_OK)
return -1;
*major = info.major;
@@ -1526,7 +1486,7 @@ dm_geteventnr (const char *name)
{
struct dm_info info;
- if (dm_get_info(name, &info) != 0)
+ if (dm_get_info(name, &info) != DMP_OK)
return -1;
return info.event_nr;
@@ -1537,7 +1497,7 @@ dm_is_suspended(const char *name)
{
struct dm_info info;
- if (dm_get_info(name, &info) != 0)
+ if (dm_get_info(name, &info) != DMP_OK)
return -1;
return info.suspended;
@@ -1689,7 +1649,7 @@ dm_get_deferred_remove (const char * mapname)
{
struct dm_info info;
- if (dm_get_info(mapname, &info) != 0)
+ if (dm_get_info(mapname, &info) != DMP_OK)
return -1;
return info.deferred_remove;
@@ -104,6 +104,20 @@ typedef struct libmp_map_info {
*/
int libmp_mapinfo(int flags, mapid_t id, mapinfo_t info);
+static inline int dm_get_info(const char *mapname, struct dm_info *info)
+{
+ return libmp_mapinfo(DM_MAP_BY_NAME,
+ (mapid_t) { .str = mapname },
+ (mapinfo_t) { .dmi = info });
+}
+
+static inline int dm_map_present(const char *mapname)
+{
+ return libmp_mapinfo(DM_MAP_BY_NAME,
+ (mapid_t) { .str = mapname },
+ (mapinfo_t) { .name = NULL }) == DMP_OK;
+}
+
int dm_prereq(unsigned int *v);
void skip_libmp_dm_init(void);
void libmp_dm_exit(void);
@@ -113,7 +127,6 @@ int dm_simplecmd_flush (int task, const char *name, uint16_t udev_flags);
int dm_simplecmd_noflush (int task, const char *name, uint16_t udev_flags);
int dm_addmap_create (struct multipath *mpp, char *params);
int dm_addmap_reload (struct multipath *mpp, char *params, int flush);
-int dm_map_present (const char *name);
int dm_map_present_by_uuid(const char *uuid);
int dm_get_map(const char *name, unsigned long long *size, char **outparams);
int dm_get_status(const char *name, char **outstatus);
@@ -164,7 +177,6 @@ int dm_get_major_minor (const char *name, int *major, int *minor);
char * dm_mapname(int major, int minor);
int dm_get_uuid(const char *name, char *uuid, int uuid_len);
bool has_dm_info(const struct multipath *mpp);
-int dm_get_info (const char * mapname, struct dm_info *dmi);
int dm_rename (const char * old, char * new, char * delim, int skip_kpartx);
int dm_reassign(const char * mapname);
int dm_reassign_table(const char *name, char *old, char *new);
@@ -78,14 +78,12 @@ global:
dm_flush_map_nopaths;
dm_flush_maps;
dm_geteventnr;
- dm_get_info;
dm_get_major_minor;
dm_get_maps;
dm_get_multipath;
dm_get_uuid;
dm_is_mpath;
dm_mapname;
- dm_map_present;
dm_prereq;
dm_queue_if_no_path;
dm_reassign;
@@ -502,7 +502,7 @@ remove_maps_and_stop_waiters(struct vectors *vecs)
int refresh_multipath(struct vectors *vecs, struct multipath *mpp)
{
- if (dm_get_info(mpp->alias, &mpp->dmi)) {
+ if (dm_get_info(mpp->alias, &mpp->dmi) != DMP_OK) {
/* Error accessing table */
condlog(2, "%s: cannot access table", mpp->alias);
goto out;
@@ -722,7 +722,7 @@ add_map_without_path (struct vectors *vecs, const char *alias)
mpp->alias = strdup(alias);
- if (dm_get_info(mpp->alias, &mpp->dmi)) {
+ if (dm_get_info(mpp->alias, &mpp->dmi) != DMP_OK) {
condlog(3, "%s: cannot access table", mpp->alias);
goto out;
}