diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2011-08-10 20:25:29 +0000 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2011-08-10 20:25:29 +0000 |
commit | 077a6755ff2ac55c334870fb47d18fb397904dc3 (patch) | |
tree | 07d328232a75d6df52bf13332d2e3b64c018aa0e /lib/metadata/vg.c | |
parent | 789f9c55e5a526ee3ded3f95bfce3ce836bc3dd2 (diff) | |
download | lvm2-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.c | 22 |
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) |