mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-03 05:18:29 +03:00
Add vg_set_fid function to change VG format instance.
This function also sets a reference to a new VG format instance for all PVs that are part of the VG so the PV-VG interconnection is consistent after the change.
This commit is contained in:
parent
c0c21864c6
commit
f8b78ec613
@ -308,10 +308,11 @@ int backup_restore_vg(struct cmd_context *cmd, struct volume_group *vg)
|
||||
fic.type = FMT_INSTANCE_VG | FMT_INSTANCE_MDAS | FMT_INSTANCE_AUX_MDAS;
|
||||
fic.context.vg_ref.vg_name = vg->name;
|
||||
fic.context.vg_ref.vg_id = NULL;
|
||||
if (!(vg->fid = cmd->fmt->ops->create_instance(cmd->fmt, &fic))) {
|
||||
if (!(fid = cmd->fmt->ops->create_instance(cmd->fmt, &fic))) {
|
||||
log_error("Failed to allocate format instance");
|
||||
return 0;
|
||||
}
|
||||
vg_set_fid(vg, fid);
|
||||
|
||||
/*
|
||||
* Setting vg->old_name to a blank value will explicitly
|
||||
|
@ -3931,6 +3931,16 @@ uint32_t vg_lock_newname(struct cmd_context *cmd, const char *vgname)
|
||||
return FAILED_EXIST;
|
||||
}
|
||||
|
||||
void vg_set_fid(struct volume_group *vg,
|
||||
struct format_instance *fid)
|
||||
{
|
||||
struct pv_list *pvl;
|
||||
|
||||
vg->fid = fid;
|
||||
dm_list_iterate_items(pvl, &vg->pvs)
|
||||
pvl->pv->fid = fid;
|
||||
}
|
||||
|
||||
static int _convert_key_to_string(const char *key, size_t key_len,
|
||||
unsigned sub_key, char *buf, size_t buf_len)
|
||||
{
|
||||
|
@ -190,6 +190,7 @@ struct metadata_area *mda_copy(struct dm_pool *mem,
|
||||
unsigned mda_is_ignored(struct metadata_area *mda);
|
||||
void mda_set_ignored(struct metadata_area *mda, unsigned ignored);
|
||||
unsigned mda_locns_match(struct metadata_area *mda1, struct metadata_area *mda2);
|
||||
void vg_set_fid(struct volume_group *vg, struct format_instance *fid);
|
||||
int fid_add_mda(struct format_instance *fid, struct metadata_area *mda,
|
||||
const char *key, size_t key_len, const unsigned sub_key);
|
||||
int fid_add_mdas(struct format_instance *fid, struct dm_list *mdas,
|
||||
|
Loading…
Reference in New Issue
Block a user