mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
mirror: validate region_size for mirrors
Check for region size properties of mirror segments.
This commit is contained in:
parent
1693fef529
commit
79d214032b
@ -1,5 +1,6 @@
|
|||||||
Version 2.02.178 -
|
Version 2.02.178 -
|
||||||
=====================================
|
=====================================
|
||||||
|
Extend validation of region_size for mirror segment.
|
||||||
Reload whole device stack when reinitilizing mirror log.
|
Reload whole device stack when reinitilizing mirror log.
|
||||||
Mirrors without monitoring are WARNING and not blocking on error.
|
Mirrors without monitoring are WARNING and not blocking on error.
|
||||||
Detect too big region_size with clustered mirrors.
|
Detect too big region_size with clustered mirrors.
|
||||||
|
@ -391,6 +391,14 @@ static void _check_lv_segment(struct logical_volume *lv, struct lv_segment *seg,
|
|||||||
if (!(seg2 = first_seg(seg->log_lv)) || (find_mirror_seg(seg2) != seg))
|
if (!(seg2 = first_seg(seg->log_lv)) || (find_mirror_seg(seg2) != seg))
|
||||||
seg_error("log LV does not point back to mirror segment");
|
seg_error("log LV does not point back to mirror segment");
|
||||||
}
|
}
|
||||||
|
if (seg_is_mirror(seg)) {
|
||||||
|
if (!seg->region_size)
|
||||||
|
seg_error("region size is zero");
|
||||||
|
else if (seg->region_size > seg->lv->size)
|
||||||
|
seg_error("region size is bigger then LV itself");
|
||||||
|
else if (!is_power_of_2(seg->region_size))
|
||||||
|
seg_error("region size is non power of 2");
|
||||||
|
}
|
||||||
} else { /* !mirrored */
|
} else { /* !mirrored */
|
||||||
if (seg->log_lv) {
|
if (seg->log_lv) {
|
||||||
if (lv_is_raid_image(lv))
|
if (lv_is_raid_image(lv))
|
||||||
|
Loading…
Reference in New Issue
Block a user