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/metadata.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/metadata.c')
-rw-r--r-- | lib/metadata/metadata.c | 82 |
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); |