mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
raid: fix activation of tracked image
Activation of raid has brough up also splitted image with tracing (without taking lock for this). So when raid is now activate - such image is not put into table (with _rmeta). When user needs such device, just active it.
This commit is contained in:
parent
a15f0d181c
commit
bdfc96cb08
@ -1,5 +1,6 @@
|
||||
Version 2.02.169 -
|
||||
=====================================
|
||||
Fix table load for splitted RAID LV and require explicit activation.
|
||||
Always active splitted RAID LV exclusively locally.
|
||||
Do not use LV RAID status bit for segment status.
|
||||
Check segtype directly instead of checking RAID in segment status.
|
||||
|
@ -2681,12 +2681,15 @@ static int _add_segment_to_dtree(struct dev_manager *dm,
|
||||
/* Add any LVs used by this segment */
|
||||
for (s = 0; s < seg->area_count; ++s) {
|
||||
if ((seg_type(seg, s) == AREA_LV) &&
|
||||
/* do not bring up tracked image */
|
||||
!lv_is_raid_image_with_tracking(seg_lv(seg, s)) &&
|
||||
/* origin only for cache without pending delete */
|
||||
(!dm->track_pending_delete || !seg_is_cache(seg)) &&
|
||||
!_add_new_lv_to_dtree(dm, dtree, seg_lv(seg, s),
|
||||
laopts, NULL))
|
||||
return_0;
|
||||
if (seg_is_raid_with_meta(seg) && seg->meta_areas && seg_metalv(seg, s) &&
|
||||
!lv_is_raid_image_with_tracking(seg_lv(seg, s)) &&
|
||||
!_add_new_lv_to_dtree(dm, dtree, seg_metalv(seg, s),
|
||||
laopts, NULL))
|
||||
return_0;
|
||||
|
@ -226,6 +226,7 @@
|
||||
|
||||
#define lv_is_raid(lv) (((lv)->status & RAID) ? 1 : 0)
|
||||
#define lv_is_raid_image(lv) (((lv)->status & RAID_IMAGE) ? 1 : 0)
|
||||
#define lv_is_raid_image_with_tracking(lv) ((lv_is_raid_image(lv) && !((lv)->status & LVM_WRITE)) ? 1 : 0)
|
||||
#define lv_is_raid_metadata(lv) (((lv)->status & RAID_META) ? 1 : 0)
|
||||
#define lv_is_raid_type(lv) (((lv)->status & (RAID | RAID_IMAGE | RAID_META)) ? 1 : 0)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user