[lvm-devel] [PATCH 29/35] Set vg_mda_copies when pvchange --metadataignore is given.

Dave Wysochanski dwysocha at redhat.com
Tue Jun 22 03:06:02 UTC 2010


When a user explicitly sets a new mda ignore value for a PV, we
should update vg_mda_copies accordingly.  When the VG is written
out, the user would not want the new ignore state to get lost as
a result of the metadata balancing policy.

Signed-off-by: Dave Wysochanski <dwysocha at redhat.com>
---
 tools/pvchange.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/tools/pvchange.c b/tools/pvchange.c
index ba196d6..7f02073 100644
--- a/tools/pvchange.c
+++ b/tools/pvchange.c
@@ -147,6 +147,18 @@ static int _pvchange_single(struct cmd_context *cmd, struct volume_group *vg,
 		if (!pv_mda_set_ignored(pv, mda_ignore)) {
 			goto out;
 		}
+		/*
+		 * Update vg_mda_copies based on the mdas in this PV.
+		 * This is most likely what the usre would expect - if they
+		 * specify a specific PV to be ignored/un-ignored, they will
+		 * most likely not want LVM to turn around and change the
+		 * ignore / un-ignore value when it writes the VG to disk.
+		 * This does not guarantee this PV's ignore bits will be
+		 * preserved in future operations.
+		 */
+		if (!is_orphan(pv) && vg_mda_copies(vg)) {
+			vg_set_mda_copies(vg, vg_mda_copies(vg));
+		}
 	} else {
 		/* --uuid: Change PV ID randomly */
 		if (!id_create(&pv->id)) {
-- 
1.6.0.6




More information about the lvm-devel mailing list