summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinz Mauelshagen <heinzm@redhat.com>2017-10-09 14:00:46 +0200
committerHeinz Mauelshagen <heinzm@redhat.com>2017-10-09 14:01:23 +0200
commit2f754b73ffdaa95af4a6d703e31b76d4efbf7a36 (patch)
tree4706546ca29c610ba07a0a02a42e830f625bc838
parent554a761db2acf2216eadf0279a390ac924038286 (diff)
downloadlvm2-2f754b73ffdaa95af4a6d703e31b76d4efbf7a36.tar.gz
raid: fix validation checks for segment data_offset member
Commit 222e1e3acee399b0acf31565f784716d67c465a8 was not valuing special case of data_ofset member equal to 1.
-rw-r--r--lib/metadata/merge.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/metadata/merge.c b/lib/metadata/merge.c
index b0adc5a11..5017cf191 100644
--- a/lib/metadata/merge.c
+++ b/lib/metadata/merge.c
@@ -143,7 +143,7 @@ static void _check_raid1_seg(struct lv_segment *seg, int *error_count)
raid_seg_error("no meta areas");
if (seg->stripe_size)
raid_seg_error_val("non-zero stripe size", seg->stripe_size);
- if ((seg->lv->status & LV_RESHAPE_DATA_OFFSET) || seg->data_offset)
+ if ((seg->lv->status & LV_RESHAPE_DATA_OFFSET) || seg->data_offset > 1)
raid_seg_error_val("data_offset", seg->data_offset);
_check_raid_region_recovery(seg, error_count);
}
@@ -170,7 +170,7 @@ static void _check_raid45610_seg(struct lv_segment *seg, int *error_count)
/* END: checks applying to any raid4/5/6/10 */
if (seg->lv->status & LV_RESHAPE_DATA_OFFSET) {
- if (seg->data_offset & (seg->lv->vg->extent_size - 1))
+ if (seg->data_offset > 1 && (seg->data_offset & (seg->lv->vg->extent_size - 1)))
raid_seg_error_val("data_offset", seg->data_offset);
} else if (seg->data_offset)
raid_seg_error_val("data_offset", seg->data_offset);