From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24918 invoked by alias); 19 May 2010 11:52:22 -0000 Received: (qmail 24900 invoked by uid 9657); 19 May 2010 11:52:21 -0000 Date: Wed, 19 May 2010 11:52:00 -0000 Message-ID: <20100519115221.24898.qmail@sourceware.org> From: wysochanski@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2/lib/cache lvmcache.c lvmcache.h Mailing-List: contact lvm2-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: lvm2-cvs-owner@sourceware.org X-SW-Source: 2010-05/txt/msg00050.txt.bz2 CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: wysochanski@sourceware.org 2010-05-19 11:52:21 Modified files: lib/cache : lvmcache.c lvmcache.h Log message: Add lvmcache_vgname_from_pvid(). Add lvmcache function to lookup a vgname from a pvid. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/cache/lvmcache.c.diff?cvsroot=lvm2&r1=1.90&r2=1.91 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/cache/lvmcache.h.diff?cvsroot=lvm2&r1=1.32&r2=1.33 --- LVM2/lib/cache/lvmcache.c 2010/05/19 11:52:07 1.90 +++ LVM2/lib/cache/lvmcache.c 2010/05/19 11:52:21 1.91 @@ -509,6 +509,27 @@ return info; } +char *lvmcache_vgname_from_pvid(struct cmd_context *cmd, const char *pvid) +{ + struct lvmcache_info *info; + char *vgname; + + if (!device_from_pvid(cmd, (struct id *)pvid, NULL)) { + log_error("Couldn't find device with uuid %s.", pvid); + return NULL; + } + + info = info_from_pvid(pvid, 0); + if (!info) + return_NULL; + + if (!(vgname = dm_pool_strdup(cmd->mem, info->vginfo->vgname))) { + log_errno(ENOMEM, "vgname allocation failed"); + return NULL; + } + return vgname; +} + static void _rescan_entry(struct lvmcache_info *info) { struct label *label; --- LVM2/lib/cache/lvmcache.h 2010/05/19 11:52:07 1.32 +++ LVM2/lib/cache/lvmcache.h 2010/05/19 11:52:21 1.33 @@ -98,6 +98,7 @@ 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);