[lvm-devel] [PATCH 2/5] Add lvmcache function to lookup a vgname from a pvid.

Dave Wysochanski dwysocha at redhat.com
Wed Apr 28 15:55:39 UTC 2010


Signed-off-by: Dave Wysochanski <dwysocha at redhat.com>
---
 lib/cache/lvmcache.c |   17 +++++++++++++++++
 lib/cache/lvmcache.h |    1 +
 2 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/lib/cache/lvmcache.c b/lib/cache/lvmcache.c
index f53b4c3..653b13e 100644
--- a/lib/cache/lvmcache.c
+++ b/lib/cache/lvmcache.c
@@ -499,6 +499,23 @@ struct lvmcache_info *info_from_pvid(const char *pvid, int valid_only)
 	return info;
 }
 
+char *lvmcache_vgname_from_pvid(struct cmd_context *cmd, const char *pvid)
+{
+	struct lvmcache_info *info;
+	char *vgname;
+
+	info = info_from_pvid(pvid, 0);
+	if (!info)
+		return_NULL;
+
+	if (!(vgname = dm_pool_alloc(cmd->mem, NAME_LEN+1))) {
+		log_errno(ENOMEM, "vgname allocation failed");
+		return NULL;
+	}
+	strncpy(vgname, info->vginfo->vgname, NAME_LEN);
+	return vgname;
+}
+
 static void _rescan_entry(struct lvmcache_info *info)
 {
 	struct label *label;
diff --git a/lib/cache/lvmcache.h b/lib/cache/lvmcache.h
index 5b0ca73..55c2e7a 100644
--- a/lib/cache/lvmcache.h
+++ b/lib/cache/lvmcache.h
@@ -97,6 +97,7 @@ struct device *device_from_pvid(struct cmd_context *cmd, struct id *pvid,
 				unsigned *scan_done_once);
 const char *pvid_from_devname(struct cmd_context *cmd,
 			      const char *dev_name);
+char *lvmcache_vgname_from_pvid(struct cmd_context *cmd, const char *pvid);
 int vgs_locked(void);
 int vgname_is_locked(const char *vgname);
 
-- 
1.6.0.6




More information about the lvm-devel mailing list