From 65079de2658fed1acdb7393d4ae6e74805d7b516 Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac Date: Mon, 13 Feb 2012 11:01:34 +0000 Subject: [PATCH] If the same fid is already same avoid ref_counting --- WHATS_NEW | 1 + lib/metadata/metadata.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/WHATS_NEW b/WHATS_NEW index 19674af62..a26e50d02 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.92 - ==================================== + Skip pv/vg_set_fid processing if the fid is same. Check for foreach loop errors in _vg_read_orphans() (2.02.91). Clean error paths for format instance creation (2.02.91). Release vg in error path of _format1_vg_read() instead of just free(). diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c index e3e3c37c2..005f17d44 100644 --- a/lib/metadata/metadata.c +++ b/lib/metadata/metadata.c @@ -4149,6 +4149,9 @@ bad: void pv_set_fid(struct physical_volume *pv, struct format_instance *fid) { + if (fid == pv->fid) + return; + if (fid) fid->ref_count++; @@ -4163,6 +4166,9 @@ void vg_set_fid(struct volume_group *vg, { struct pv_list *pvl; + if (fid == vg->fid) + return; + if (fid) fid->ref_count++;