diff options
author | Heinz Mauelshagen <heinzm@redhat.com> | 2018-05-03 21:35:32 +0200 |
---|---|---|
committer | Heinz Mauelshagen <heinzm@redhat.com> | 2018-05-03 21:36:50 +0200 |
commit | 88fe07ad0ac8f12c2a2f4873d9bd32852c2f1536 (patch) | |
tree | 54a1eaab3c32baa40b8a8d64b8dc30c645595b57 /lib | |
parent | 49db9b5e0b35f6b0a47ad10276fb252c09f438ef (diff) | |
download | lvm2-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.c | 21 |
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)); |