summaryrefslogtreecommitdiffstats
path: root/lib/metadata/metadata.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/metadata.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/metadata.c')
-rw-r--r--lib/metadata/metadata.c82
1 files changed, 33 insertions, 49 deletions
diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c
index 215d1f49..ab8aa613 100644
--- a/lib/metadata/metadata.c
+++ b/lib/metadata/metadata.c
@@ -374,7 +374,7 @@ int get_pv_from_vg_by_id(const struct format_type *fmt, const char *vg_name,
}
}
out:
- free_vg(vg);
+ release_vg(vg);
return r;
}
@@ -928,7 +928,7 @@ struct volume_group *vg_create(struct cmd_context *cmd, const char *vg_name)
/* is this vg name already in use ? */
if ((vg = vg_read_internal(cmd, vg_name, NULL, 1, &consistent))) {
log_error("A volume group called '%s' already exists.", vg_name);
- unlock_and_free_vg(cmd, vg, vg_name);
+ unlock_and_release_vg(cmd, vg, vg_name);
return _vg_make_handle(cmd, NULL, FAILED_EXIST);
}
@@ -980,7 +980,7 @@ struct volume_group *vg_create(struct cmd_context *cmd, const char *vg_name)
return _vg_make_handle(cmd, vg, SUCCESS);
bad:
- unlock_and_free_vg(cmd, vg, vg_name);
+ unlock_and_release_vg(cmd, vg, vg_name);
/* FIXME: use _vg_make_handle() w/proper error code */
return NULL;
}
@@ -2730,7 +2730,7 @@ static struct volume_group *_vg_read_orphans(struct cmd_context *cmd,
return vg;
bad:
free_pv_fid(pv);
- free_vg(vg);
+ release_vg(vg);
return NULL;
}
@@ -2865,7 +2865,7 @@ static struct volume_group *_vg_read(struct cmd_context *cmd,
*consistent = 1;
return correct_vg;
} else {
- free_vg(correct_vg);
+ release_vg(correct_vg);
correct_vg = NULL;
}
@@ -2911,7 +2911,7 @@ static struct volume_group *_vg_read(struct cmd_context *cmd,
(!use_precommitted &&
!(vg = mda->ops->vg_read(fid, vgname, mda)))) {
inconsistent = 1;
- free_vg(vg);
+ release_vg(vg);
continue;
}
@@ -2930,7 +2930,7 @@ static struct volume_group *_vg_read(struct cmd_context *cmd,
inconsistent = 1;
if (vg->seqno > correct_vg->seqno) {
- free_vg(correct_vg);
+ release_vg(correct_vg);
correct_vg = vg;
} else {
mda->status |= MDA_INCONSISTENT;
@@ -2939,7 +2939,7 @@ static struct volume_group *_vg_read(struct cmd_context *cmd,
}
if (vg != correct_vg)
- free_vg(vg);
+ release_vg(vg);
}
/* Ensure every PV in the VG was in the cache */
@@ -3015,7 +3015,7 @@ static struct volume_group *_vg_read(struct cmd_context *cmd,
if (critical_section())
inconsistent = 1;
else {
- free_vg(correct_vg);
+ release_vg(correct_vg);
correct_vg = NULL;
}
} else dm_list_iterate_items(pvl, &correct_vg->pvs) {
@@ -3024,14 +3024,14 @@ static struct volume_group *_vg_read(struct cmd_context *cmd,
if (!str_list_match_item(pvids, pvl->pv->dev->pvid)) {
log_debug("Cached VG %s had incorrect PV list",
vgname);
- free_vg(correct_vg);
+ release_vg(correct_vg);
correct_vg = NULL;
break;
}
}
if (correct_vg && inconsistent_mdas) {
- free_vg(correct_vg);
+ release_vg(correct_vg);
correct_vg = NULL;
}
}
@@ -3076,7 +3076,7 @@ static struct volume_group *_vg_read(struct cmd_context *cmd,
correct_vg = vg;
if (!_update_pv_list(cmd->mem, &all_pvs, correct_vg)) {
_free_pv_list(&all_pvs);
- free_vg(vg);
+ release_vg(vg);
return_NULL;
}
continue;
@@ -3099,12 +3099,12 @@ static struct volume_group *_vg_read(struct cmd_context *cmd,
if (!_update_pv_list(cmd->mem, &all_pvs, vg)) {
_free_pv_list(&all_pvs);
- free_vg(vg);
- free_vg(correct_vg);
+ release_vg(vg);
+ release_vg(correct_vg);
return_NULL;
}
if (vg->seqno > correct_vg->seqno) {
- free_vg(correct_vg);
+ release_vg(correct_vg);
correct_vg = vg;
} else {
mda->status |= MDA_INCONSISTENT;
@@ -3113,7 +3113,7 @@ static struct volume_group *_vg_read(struct cmd_context *cmd,
}
if (vg != correct_vg)
- free_vg(vg);
+ release_vg(vg);
}
/* Give up looking */
@@ -3159,7 +3159,7 @@ static struct volume_group *_vg_read(struct cmd_context *cmd,
return correct_vg;
}
_free_pv_list(&all_pvs);
- free_vg(correct_vg);
+ release_vg(correct_vg);
return NULL;
}
@@ -3191,7 +3191,7 @@ static struct volume_group *_vg_read(struct cmd_context *cmd,
if (!vg_write(correct_vg)) {
log_error("Automatic metadata correction failed");
_free_pv_list(&all_pvs);
- free_vg(correct_vg);
+ release_vg(correct_vg);
cmd->handles_missing_pvs = saved_handles_missing_pvs;
return NULL;
}
@@ -3200,7 +3200,7 @@ static struct volume_group *_vg_read(struct cmd_context *cmd,
if (!vg_commit(correct_vg)) {
log_error("Automatic metadata correction commit "
"failed");
- free_vg(correct_vg);
+ release_vg(correct_vg);
return NULL;
}
@@ -3211,14 +3211,14 @@ static struct volume_group *_vg_read(struct cmd_context *cmd,
}
if (!id_write_format(&pvl->pv->id, uuid, sizeof(uuid))) {
_free_pv_list(&all_pvs);
- free_vg(correct_vg);
+ release_vg(correct_vg);
return_NULL;
}
log_error("Removing PV %s (%s) that no longer belongs to VG %s",
pv_dev_name(pvl->pv), uuid, correct_vg->name);
if (!pv_write_orphan(cmd, pvl->pv)) {
_free_pv_list(&all_pvs);
- free_vg(correct_vg);
+ release_vg(correct_vg);
return_NULL;
}
@@ -3242,7 +3242,7 @@ static struct volume_group *_vg_read(struct cmd_context *cmd,
"volume group %s", correct_vg->name);
log_error("Please restore the metadata by running "
"vgcfgrestore.");
- free_vg(correct_vg);
+ release_vg(correct_vg);
return NULL;
}
@@ -3262,7 +3262,7 @@ struct volume_group *vg_read_internal(struct cmd_context *cmd, const char *vgnam
if (!check_pv_segments(vg)) {
log_error(INTERNAL_ERROR "PV segments corrupted in %s.",
vg->name);
- free_vg(vg);
+ release_vg(vg);
return NULL;
}
@@ -3270,7 +3270,7 @@ struct volume_group *vg_read_internal(struct cmd_context *cmd, const char *vgnam
if (!check_lv_segments(lvl->lv, 0)) {
log_error(INTERNAL_ERROR "LV segments corrupted in %s.",
lvl->lv->name);
- free_vg(vg);
+ release_vg(vg);
return NULL;
}
}
@@ -3282,7 +3282,7 @@ struct volume_group *vg_read_internal(struct cmd_context *cmd, const char *vgnam
if (!check_lv_segments(lvl->lv, 1)) {
log_error(INTERNAL_ERROR "LV segments corrupted in %s.",
lvl->lv->name);
- free_vg(vg);
+ release_vg(vg);
return NULL;
}
}
@@ -3299,22 +3299,6 @@ void free_pv_fid(struct physical_volume *pv)
pv->fid->fmt->ops->destroy_instance(pv->fid);
}
-void free_vg(struct volume_group *vg)
-{
- if (!vg)
- return;
-
- 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);
-}
-
/* This is only called by lv_from_lvid, which is only called from
* activate.c so we know the appropriate VG lock is already held and
* the vg_read_internal is therefore safe.
@@ -3341,7 +3325,7 @@ static struct volume_group *_vg_read_by_vgid(struct cmd_context *cmd,
"inconsistent", vg->name);
return vg;
}
- free_vg(vg);
+ release_vg(vg);
}
/* Mustn't scan if memory locked: ensure cache gets pre-populated! */
@@ -3370,12 +3354,12 @@ static struct volume_group *_vg_read_by_vgid(struct cmd_context *cmd,
if (!consistent) {
log_error("Volume group %s metadata is "
"inconsistent", vgname);
- free_vg(vg);
+ release_vg(vg);
return NULL;
}
return vg;
}
- free_vg(vg);
+ release_vg(vg);
}
return NULL;
@@ -3409,7 +3393,7 @@ struct logical_volume *lv_from_lvid(struct cmd_context *cmd, const char *lvid_s,
return lvl->lv;
out:
- free_vg(vg);
+ release_vg(vg);
return NULL;
}
@@ -3616,12 +3600,12 @@ static int _get_pvs(struct cmd_context *cmd, int warnings, struct dm_list **pvsl
dm_list_iterate_items(pvl, &vg->pvs) {
if (!(pvl_copy = _copy_pvl(cmd->mem, pvl))) {
log_error("PV list allocation failed");
- free_vg(vg);
+ release_vg(vg);
return 0;
}
dm_list_add(results, &pvl_copy->list);
}
- free_vg(vg);
+ release_vg(vg);
}
init_pvmove(old_pvmove);
@@ -3838,7 +3822,7 @@ static struct volume_group *_recover_vg(struct cmd_context *cmd,
return_NULL;
if (!consistent) {
- free_vg(vg);
+ release_vg(vg);
return_NULL;
}
@@ -3910,7 +3894,7 @@ static struct volume_group *_vg_lock_and_read(struct cmd_context *cmd, const cha
/* consistent == 0 when VG is not found, but failed == FAILED_NOTFOUND */
if (!consistent && !failure) {
- free_vg(vg);
+ release_vg(vg);
if (!(vg = _recover_vg(cmd, vg_name, vgid))) {
log_error("Recovery of volume group \"%s\" failed.",
vg_name);