[lvm-devel] master - segtype: check for seg type instead of status

Zdenek Kabelac zkabelac at fedoraproject.org
Tue Dec 13 21:09:45 UTC 2016


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=d1e398c474032716679f704008026b5d17e9469a
Commit:        d1e398c474032716679f704008026b5d17e9469a
Parent:        069039204002e5c8514050fe541bbd378c383a02
Author:        Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate:    Tue Dec 13 14:50:48 2016 +0100
Committer:     Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Tue Dec 13 22:07:52 2016 +0100

segtype: check for seg type instead of status

RAID is LV property - which has single segment of raid type.
---
 WHATS_NEW                |    1 +
 lib/format_text/export.c |    2 +-
 lib/metadata/merge.c     |    8 ++++----
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/WHATS_NEW b/WHATS_NEW
index a75183e..0561074 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
 Version 2.02.169 - 
 =====================================
+  Check segtype directly instead of checking RAID in segment status. 
   Reusing exiting code for raid image removal.
   Fix pvmove leaving -pvmove0 error device in clustered VG.
   Avoid adding extra '_' at end of raid extracted images or metadata.
diff --git a/lib/format_text/export.c b/lib/format_text/export.c
index 1ecc362..199c185 100644
--- a/lib/format_text/export.c
+++ b/lib/format_text/export.c
@@ -623,7 +623,7 @@ int out_areas(struct formatter *f, const struct lv_segment *seg,
 			break;
 		case AREA_LV:
 			/* FIXME This helper code should be target-independent! Check for metadata LV property. */
-			if (!(seg->status & RAID)) {
+			if (!seg_is_raid(seg)) {
 				outf(f, "\"%s\", %u%s",
 				     seg_lv(seg, s)->name,
 				     seg_le(seg, s),
diff --git a/lib/metadata/merge.c b/lib/metadata/merge.c
index bf0d2c0..6d52bc4 100644
--- a/lib/metadata/merge.c
+++ b/lib/metadata/merge.c
@@ -431,7 +431,7 @@ int check_lv_segments(struct logical_volume *lv, int complete_vg)
 		}
 
 		if (complete_vg && seg->log_lv &&
-		    !seg_is_mirrored(seg) && !(seg->status & RAID_IMAGE)) {
+		    !seg_is_mirrored(seg) && lv_is_raid_image(lv)) {
 			log_error("LV %s: segment %u log LV %s is not a "
 				  "mirror log or a RAID image",
 				  lv->name, seg_count, seg->log_lv->name);
@@ -458,9 +458,9 @@ int check_lv_segments(struct logical_volume *lv, int complete_vg)
 			}
 		}
 
-		if (complete_vg && seg->status & MIRROR_IMAGE) {
-			if (!find_mirror_seg(seg) ||
-			    !seg_is_mirrored(find_mirror_seg(seg))) {
+		if (complete_vg && lv_is_mirror_image(lv)) {
+			if (!(seg2 = find_mirror_seg(seg)) ||
+			    !seg_is_mirrored(seg2)) {
 				log_error("LV %s: segment %u mirror image "
 					  "is not mirrored",
 					  lv->name, seg_count);




More information about the lvm-devel mailing list