summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorHeinz Mauelshagen <heinzm@redhat.com>2018-05-03 21:35:32 +0200
committerHeinz Mauelshagen <heinzm@redhat.com>2018-05-03 21:36:50 +0200
commit88fe07ad0ac8f12c2a2f4873d9bd32852c2f1536 (patch)
tree54a1eaab3c32baa40b8a8d64b8dc30c645595b57 /lib
parent49db9b5e0b35f6b0a47ad10276fb252c09f438ef (diff)
downloadlvm2-88fe07ad0ac8f12c2a2f4873d9bd32852c2f1536.tar.gz
raid: use new internal APIs
Use APIs introduced with commit 4ebfd8e8eb68442efc334b35bc1f22eda3e4dd3d where appropriate to minimize redundant code.
Diffstat (limited to 'lib')
-rw-r--r--lib/metadata/raid_manip.c21
1 files changed, 5 insertions, 16 deletions
diff --git a/lib/metadata/raid_manip.c b/lib/metadata/raid_manip.c
index 1b9ebcf94..703f28547 100644
--- a/lib/metadata/raid_manip.c
+++ b/lib/metadata/raid_manip.c
@@ -6789,10 +6789,8 @@ static int _lv_raid_rebuild_or_replace(struct logical_volume *lv,
return 0;
}
- if (lv_is_virtual(seg_lv(raid_seg, s)) ||
- lv_is_virtual(seg_metalv(raid_seg, s)) ||
- lv_is_partial(seg_lv(raid_seg, s)) ||
- lv_is_partial(seg_metalv(raid_seg, s)) ||
+ if (_sublv_is_degraded(seg_lv(raid_seg, s)) ||
+ _sublv_is_degraded(seg_metalv(raid_seg, s)) ||
lv_is_on_pvs(seg_lv(raid_seg, s), remove_pvs) ||
lv_is_on_pvs(seg_metalv(raid_seg, s), remove_pvs)) {
match_count++;
@@ -7122,10 +7120,8 @@ static int _partial_raid_lv_is_redundant(const struct logical_volume *lv)
if (!(i % copies))
rebuilds_per_group = 0;
- if (lv_is_partial(seg_lv(raid_seg, s)) ||
- lv_is_partial(seg_metalv(raid_seg, s)) ||
- lv_is_virtual(seg_lv(raid_seg, s)) ||
- lv_is_virtual(seg_metalv(raid_seg, s)))
+ if (_sublv_is_degraded(seg_lv(raid_seg, s)) ||
+ _sublv_is_degraded(seg_metalv(raid_seg, s)))
rebuilds_per_group++;
if (rebuilds_per_group >= copies) {
@@ -7138,14 +7134,7 @@ static int _partial_raid_lv_is_redundant(const struct logical_volume *lv)
return 1; /* Redundant */
}
- for (s = 0; s < raid_seg->area_count; s++) {
- if (lv_is_partial(seg_lv(raid_seg, s)) ||
- lv_is_partial(seg_metalv(raid_seg, s)) ||
- lv_is_virtual(seg_lv(raid_seg, s)) ||
- lv_is_virtual(seg_metalv(raid_seg, s)))
- failed_components++;
- }
-
+ failed_components = _lv_get_nr_failed_components(lv);
if (failed_components == raid_seg->area_count) {
log_verbose("All components of raid LV %s have failed.",
display_lvname(lv));