summaryrefslogtreecommitdiffstats
path: root/lib/metadata/vg.c
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2011-08-10 20:25:29 +0000
committerZdenek Kabelac <zkabelac@redhat.com>2011-08-10 20:25:29 +0000
commit077a6755ff2ac55c334870fb47d18fb397904dc3 (patch)
tree07d328232a75d6df52bf13332d2e3b64c018aa0e /lib/metadata/vg.c
parent789f9c55e5a526ee3ded3f95bfce3ce836bc3dd2 (diff)
downloadlvm2-077a6755ff2ac55c334870fb47d18fb397904dc3.tar.gz
lvm2-077a6755ff2ac55c334870fb47d18fb397904dc3.tar.xz
lvm2-077a6755ff2ac55c334870fb47d18fb397904dc3.zip
Replace free_vg with release_vg
Move the free_vg() to vg.c and replace free_vg with release_vg and make the _free_vg internal. Patch is needed for sharing VG in vginfo cache so the release_vg function name is a better fit here.
Diffstat (limited to 'lib/metadata/vg.c')
-rw-r--r--lib/metadata/vg.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/metadata/vg.c b/lib/metadata/vg.c
index af286fc4..ef88a4d3 100644
--- a/lib/metadata/vg.c
+++ b/lib/metadata/vg.c
@@ -17,6 +17,7 @@
#include "metadata.h"
#include "display.h"
#include "activate.h"
+#include "toolcontext.h"
struct volume_group *alloc_vg(const char *pool_name, struct cmd_context *cmd,
const char *vg_name)
@@ -51,6 +52,27 @@ struct volume_group *alloc_vg(const char *pool_name, struct cmd_context *cmd,
return vg;
}
+static void _free_vg(struct volume_group *vg)
+{
+ vg_set_fid(vg, NULL);
+
+ if (vg->cmd && vg->vgmem == vg->cmd->mem) {
+ log_error(INTERNAL_ERROR "global memory pool used for VG %s",
+ vg->name);
+ return;
+ }
+
+ dm_pool_destroy(vg->vgmem);
+}
+
+void release_vg(struct volume_group *vg)
+{
+ if (!vg)
+ return;
+
+ _free_vg(vg);
+}
+
char *vg_fmt_dup(const struct volume_group *vg)
{
if (!vg->fid || !vg->fid->fmt)