diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c index 37dd3611d..899297f28 100644 --- a/lib/metadata/lv_manip.c +++ b/lib/metadata/lv_manip.c @@ -4834,9 +4834,6 @@ int lv_rename_update(struct cmd_context *cmd, struct logical_volume *lv, } } - if (update_mda && !archive(vg)) - return_0; - if (old_lv_is_historical) { /* * Historical LVs have neither sub LVs nor any @@ -6146,9 +6143,6 @@ int lv_resize(struct logical_volume *lv, if (!lockd_lv_resize(cmd, lock_lv, "ex", 0, lp)) return_0; - if (!archive(vg)) - return_0; - /* Remove any striped raid reshape space for LV resizing */ if (aux_lv && first_seg(aux_lv)->reshape_len) if (!lv_raid_free_reshape_space(aux_lv)) @@ -6719,9 +6713,6 @@ int lv_remove_single(struct cmd_context *cmd, struct logical_volume *lv, return 0; } - if (!archive(vg)) - return_0; - if (!lv_detach_writecache_cachevol(lv, 1)) { log_error("Failed to detach writecache from %s", display_lvname(lv)); return 0; @@ -6742,9 +6733,6 @@ int lv_remove_single(struct cmd_context *cmd, struct logical_volume *lv, /* FIXME Review and fix the snapshot error paths! */ return_0; - if (!archive(vg)) - return_0; - /* Special case removing a striped raid LV with allocated reshape space */ if (seg && seg->reshape_len) { if (!(seg->segtype = get_segtype_from_string(cmd, SEG_TYPE_NAME_STRIPED))) @@ -8458,9 +8446,6 @@ static struct logical_volume *_lv_create_an_lv(struct volume_group *vg, return NULL; } - if (!archive(vg)) - return_NULL; - if (pool_lv && segtype_is_thin_volume(create_segtype)) { /* Ensure all stacked messages are submitted */ if ((pool_is_active(pool_lv) || is_change_activating(lp->activate)) && diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c index 0b284435b..6852d2a2a 100644 --- a/lib/metadata/metadata.c +++ b/lib/metadata/metadata.c @@ -614,9 +614,6 @@ int vg_remove_check(struct volume_group *vg) return 0; } - if (!archive(vg)) - return 0; - return 1; } @@ -2978,6 +2975,9 @@ int vg_write(struct volume_group *vg) if (vg->cmd->wipe_outdated_pvs) _wipe_outdated_pvs(vg->cmd, vg); + if (!vg_is_archived(vg) && vg->vg_committed && !archive(vg->vg_committed)) + return_0; + if (critical_section()) log_error(INTERNAL_ERROR "Writing metadata in critical section."); diff --git a/lib/metadata/pv_manip.c b/lib/metadata/pv_manip.c index 5fd80a2ce..fd97bbbc2 100644 --- a/lib/metadata/pv_manip.c +++ b/lib/metadata/pv_manip.c @@ -623,9 +623,6 @@ int pv_resize_single(struct cmd_context *cmd, const char *vg_name = pv->vg_name; int vg_needs_pv_write = 0; - if (!archive(vg)) - goto out; - if (!(pv->fmt->features & FMT_RESIZE_PV)) { log_error("Physical volume %s format does not support resizing.", pv_name); diff --git a/lib/metadata/vg.c b/lib/metadata/vg.c index 3f9ec8d35..428e5dca7 100644 --- a/lib/metadata/vg.c +++ b/lib/metadata/vg.c @@ -694,9 +694,6 @@ int vgreduce_single(struct cmd_context *cmd, struct volume_group *vg, pvl = find_pv_in_vg(vg, name); - if (!archive(vg)) - goto_bad; - log_verbose("Removing \"%s\" from volume group \"%s\"", name, vg->name); if (pvl) diff --git a/tools/lvconvert.c b/tools/lvconvert.c index 71f7a7627..c40031fe4 100644 --- a/tools/lvconvert.c +++ b/tools/lvconvert.c @@ -1861,9 +1861,6 @@ static int _lvconvert_splitsnapshot(struct cmd_context *cmd, struct logical_volu } } - if (!archive(vg)) - return_0; - log_verbose("Splitting snapshot %s from its origin.", display_lvname(cow)); if (!vg_remove_snapshot(cow)) @@ -2796,9 +2793,6 @@ static int _lvconvert_to_thin_with_external(struct cmd_context *cmd, if (!(lvc.segtype = get_segtype_from_string(cmd, SEG_TYPE_NAME_THIN))) return_0; - if (!archive(vg)) - return_0; - /* * New thin LV needs to be created (all messages sent to pool) In this * case thin volume is created READ-ONLY and also warn about not @@ -2979,9 +2973,6 @@ static int _lvconvert_swap_pool_metadata(struct cmd_context *cmd, return 0; } - if (!archive(vg)) - return_0; - /* Swap names between old and new metadata LV */ if (!detach_pool_metadata_lv(seg, &prev_metadata_lv)) @@ -3286,9 +3277,6 @@ static int _lvconvert_to_pool(struct cmd_context *cmd, meta_readahead = arg_uint_value(cmd, readahead_ARG, cmd->default_settings.read_ahead); meta_alloc = (alloc_policy_t) arg_uint_value(cmd, alloc_ARG, ALLOC_INHERIT); - if (!archive(vg)) - goto_bad; - if (!(metadata_lv = alloc_pool_metadata(lv, meta_name, meta_readahead, @@ -3305,9 +3293,6 @@ static int _lvconvert_to_pool(struct cmd_context *cmd, goto bad; } - if (!archive(vg)) - goto_bad; - if (zero_metadata) { metadata_lv->status |= LV_ACTIVATION_SKIP; if (!activate_lv(cmd, metadata_lv)) { @@ -3556,9 +3541,6 @@ static int _cache_vol_attach(struct cmd_context *cmd, if (!get_cache_params(cmd, &chunk_size, &cache_metadata_format, &cache_mode, &policy_name, &policy_settings)) goto_out; - if (!archive(vg)) - goto_out; - /* * lv/cache_lv keeps the same lockd lock it had before, the lock for * lv_fast is kept but is not used while it's attached, and @@ -5525,9 +5507,6 @@ static int _lvconvert_to_vdopool_single(struct cmd_context *cmd, } } - if (!archive(vg)) - goto_out; - if (!convert_vdo_pool_lv(lv, &vdo_params, &lvc.virtual_extents, zero_vdopool)) goto_out; @@ -6198,9 +6177,6 @@ int lvconvert_writecache_attach_single(struct cmd_context *cmd, if (fast_name && !lockd_lv(cmd, lv_fast, "ex", 0)) goto_bad; - if (!archive(vg)) - goto_bad; - /* * lv keeps the same lockd lock it had before, the lock for * lv_fast is kept but is not used while it's attached, and @@ -6339,9 +6315,6 @@ static int _lvconvert_integrity_remove(struct cmd_context *cmd, struct logical_v if (!lockd_lv(cmd, lv, "ex", 0)) return_0; - if (!archive(vg)) - return_0; - if (lv_is_raid(lv)) ret = lv_remove_integrity_from_raid(lv); if (!ret) @@ -6371,9 +6344,6 @@ static int _lvconvert_integrity_add(struct cmd_context *cmd, struct logical_volu } else use_pvh = &vg->pvs; - if (!archive(vg)) - return_0; - if (lv_is_partial(lv)) { log_error("Cannot add integrity while LV is missing PVs."); return 0; diff --git a/tools/pvchange.c b/tools/pvchange.c index 04cbb428d..8b4a0643d 100644 --- a/tools/pvchange.c +++ b/tools/pvchange.c @@ -65,8 +65,6 @@ static int _pvchange_single(struct cmd_context *cmd, struct volume_group *vg, "logical volumes", pv_name); goto bad; } - if (!archive(vg)) - goto_bad; } else { if (tagargs) { log_error("Can't change tag on Physical Volume %s not " diff --git a/tools/pvmove.c b/tools/pvmove.c index bb372f7dc..ed92f3ce4 100644 --- a/tools/pvmove.c +++ b/tools/pvmove.c @@ -709,9 +709,6 @@ static int _pvmove_setup_single(struct cmd_context *cmd, vg, pv, pp->alloc))) goto_out; - if (!archive(vg)) - goto_out; - if (!(lv_mirr = _set_up_pvmove_lv(cmd, vg, source_pvl, lv_name, allocatable_pvs, pp->alloc, &lvs_changed, &exclusive))) diff --git a/tools/vgchange.c b/tools/vgchange.c index 032f3efcf..625b68d46 100644 --- a/tools/vgchange.c +++ b/tools/vgchange.c @@ -675,8 +675,6 @@ static int _vgchange_single(struct cmd_context *cmd, const char *vg_name, for (i = 0; i < DM_ARRAY_SIZE(_vgchange_args); ++i) { if (arg_is_set(cmd, _vgchange_args[i].arg)) { - if (!archive(vg)) - return_ECMD_FAILED; if (!_vgchange_args[i].fn(cmd, vg)) return_ECMD_FAILED; } @@ -1002,9 +1000,6 @@ static int _vgchange_locktype_single(struct cmd_context *cmd, const char *vg_nam struct volume_group *vg, struct processing_handle *handle) { - if (!archive(vg)) - return_ECMD_FAILED; - if (!_vgchange_locktype(cmd, vg)) return_ECMD_FAILED; @@ -1201,9 +1196,6 @@ static int _vgchange_systemid_single(struct cmd_context *cmd, const char *vg_nam struct volume_group *vg, struct processing_handle *handle) { - if (!archive(vg)) - return_ECMD_FAILED; - if (!_vgchange_system_id(cmd, vg)) return_ECMD_FAILED; diff --git a/tools/vgcreate.c b/tools/vgcreate.c index f9c40e86d..d6d6bb61d 100644 --- a/tools/vgcreate.c +++ b/tools/vgcreate.c @@ -148,9 +148,6 @@ int vgcreate(struct cmd_context *cmd, int argc, char **argv) } } - if (!archive(vg)) - goto_bad; - /* Store VG on disk(s) */ if (!vg_write(vg) || !vg_commit(vg)) goto_bad; diff --git a/tools/vgexport.c b/tools/vgexport.c index 86dad3abb..15cc3dd75 100644 --- a/tools/vgexport.c +++ b/tools/vgexport.c @@ -45,10 +45,6 @@ static int vgexport_single(struct cmd_context *cmd __attribute__((unused)), } } - - if (!archive(vg)) - goto_bad; - vg->status |= EXPORTED_VG; vg->system_id = NULL; diff --git a/tools/vgextend.c b/tools/vgextend.c index 04d37f886..b0f49569f 100644 --- a/tools/vgextend.c +++ b/tools/vgextend.c @@ -60,9 +60,6 @@ static int _vgextend_restoremissing(struct cmd_context *cmd __attribute__((unuse int fixed = 0; unsigned i; - if (!archive(vg)) - return_0; - for (i = 0; i < pp->pv_count; i++) if (_restore_pv(vg, pp->pv_names[i])) fixed++; @@ -99,9 +96,6 @@ static int _vgextend_single(struct cmd_context *cmd, const char *vg_name, return ECMD_FAILED; } - if (!archive(vg)) - return_ECMD_FAILED; - if (!vg_extend_each_pv(vg, pp)) goto_out; diff --git a/tools/vgimport.c b/tools/vgimport.c index 0d8b0f215..4b25b468f 100644 --- a/tools/vgimport.c +++ b/tools/vgimport.c @@ -33,9 +33,6 @@ static int _vgimport_single(struct cmd_context *cmd, goto bad; } - if (!archive(vg)) - goto_bad; - vg->status &= ~EXPORTED_VG; if (!vg_is_shared(vg)) diff --git a/tools/vgimportclone.c b/tools/vgimportclone.c index 1e6bb2d69..a47782771 100644 --- a/tools/vgimportclone.c +++ b/tools/vgimportclone.c @@ -110,9 +110,6 @@ static int _update_vg(struct cmd_context *cmd, struct volume_group *vg, * Write changes. */ - if (!archive(vg)) - goto_bad; - if (vp->import_vg) vg->status &= ~EXPORTED_VG; diff --git a/tools/vgreduce.c b/tools/vgreduce.c index 4a4202e86..c759c6643 100644 --- a/tools/vgreduce.c +++ b/tools/vgreduce.c @@ -157,9 +157,6 @@ static int _vgreduce_repair_single(struct cmd_context *cmd, const char *vg_name, return ECMD_PROCESSED; } - if (!archive(vg)) - return_ECMD_FAILED; - if (vp->force) { if (!_make_vg_consistent(cmd, vg)) return_ECMD_FAILED; diff --git a/tools/vgrename.c b/tools/vgrename.c index f442f731f..71b4e1677 100644 --- a/tools/vgrename.c +++ b/tools/vgrename.c @@ -103,9 +103,6 @@ static int _vgrename_single(struct cmd_context *cmd, const char *vg_name, dev_dir = cmd->dev_dir; - if (!archive(vg)) - goto error; - if (!lockd_rename_vg_before(cmd, vg)) { stack; goto error;