From a9ffbb0803a1ed912b0edbb493f8fc23e23512ef Mon Sep 17 00:00:00 2001 From: Milan Broz Date: Thu, 3 Jun 2010 12:45:05 +0000 Subject: [PATCH] Require partial option in lvchange --refresh for partials LVs. We must not refresh LV if some PVs are missing and partial activation was not requested. Fixes https://bugzilla.redhat.com/show_bug.cgi?id=598886 --- WHATS_NEW | 1 + test/t-activate-partial.sh | 2 ++ tools/toollib.c | 6 ++++++ 3 files changed, 9 insertions(+) diff --git a/WHATS_NEW b/WHATS_NEW index 7f760ee4d..c21a32e14 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.67 - =============================== + Require partial option in lvchange --refresh for partial LVs. Do not fail lvm_init() if init_logging() or _init_rand() generates an errno. Don't merge unchanged persistent cache file before dumping if tool scanned. Fix incorrect memory pool deallocation while using vg_read for files. diff --git a/test/t-activate-partial.sh b/test/t-activate-partial.sh index dd978f533..f0a95c577 100644 --- a/test/t-activate-partial.sh +++ b/test/t-activate-partial.sh @@ -9,6 +9,8 @@ disable_dev $dev1 not vgreduce --removemissing $vg not lvchange -v -a y $vg/mirror lvchange -v --partial -a y $vg/mirror +not lvchange -v --refresh $vg/mirror +lvchange -v --refresh --partial $vg/mirror # also check that vgchange works vgchange -a n --partial $vg diff --git a/tools/toollib.c b/tools/toollib.c index 4022a3280..e6791e23b 100644 --- a/tools/toollib.c +++ b/tools/toollib.c @@ -1248,6 +1248,12 @@ int lv_refresh(struct cmd_context *cmd, struct logical_volume *lv) { int r = 0; + if (!cmd->partial_activation && (lv->status & PARTIAL_LV)) { + log_error("Refusing refresh of partial LV %s. Use --partial to override.", + lv->name); + goto out; + } + r = suspend_lv(cmd, lv); if (!r) goto_out; -- 2.43.5