Blame SOURCES/lvm2-2_03_13-vgmerge-remove-one-of-merge-pmspare-LVs.patch

ffcdab
 tools/vgmerge.c | 14 ++++++++++++++
ffcdab
 1 file changed, 14 insertions(+)
ffcdab
ffcdab
diff --git a/tools/vgmerge.c b/tools/vgmerge.c
ffcdab
index 895018a..884ad4b 100644
ffcdab
--- a/tools/vgmerge.c
ffcdab
+++ b/tools/vgmerge.c
ffcdab
@@ -92,6 +92,20 @@ static int _vgmerge_single(struct cmd_context *cmd, const char *vg_name_to,
ffcdab
 		}
ffcdab
 	}
ffcdab
 
ffcdab
+	if (vg_from->pool_metadata_spare_lv &&
ffcdab
+	    vg_to->pool_metadata_spare_lv) {
ffcdab
+		if (vg_from->pool_metadata_spare_lv->le_count >
ffcdab
+		    vg_to->pool_metadata_spare_lv->le_count)
ffcdab
+			/* Preserve bigger pmspare from  VG_FROM */
ffcdab
+			lv = vg_to->pool_metadata_spare_lv;
ffcdab
+		else
ffcdab
+			lv = vg_from->pool_metadata_spare_lv;
ffcdab
+
ffcdab
+		log_debug_metadata("Removing pool metadata spare %s.", display_lvname(lv));
ffcdab
+		if (!lv_remove_single(cmd, lv, DONT_PROMPT, 0))
ffcdab
+				return_ECMD_FAILED;
ffcdab
+	}
ffcdab
+
ffcdab
 	if (!vgs_are_compatible(cmd, vg_from, vg_to))
ffcdab
 		goto_bad;
ffcdab