mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-18 10:04:20 +03:00
Changing RAID status flags to 64-bit broke some binary flag operations.
LVM_WRITE is a 32-bit flag. Now that RAID[_IMAGE|_META] are 64-bit, and'ing a RAID LV's status against LVM_WRITE can reset the higher order flags. A similar thing will affect thinp flags if not careful.
This commit is contained in:
parent
8171b93700
commit
0c89ef513a
@ -1,5 +1,6 @@
|
||||
Version 2.02.89 -
|
||||
==================================
|
||||
Fix improper RAID 64-bit status flag reset when and'ing against 32-bit flag.
|
||||
Fix log size calculation when only a log is being added to a mirror.
|
||||
Work around resume_lv causing error LV scanning during splitmirror operation.
|
||||
Add 7th lv_attr char to show the related kernel target.
|
||||
|
@ -971,7 +971,11 @@ int lv_raid_split_and_track(struct logical_volume *lv,
|
||||
if (!_lv_is_on_pvs(seg_lv(seg, s), splittable_pvs))
|
||||
continue;
|
||||
lv_set_visible(seg_lv(seg, s));
|
||||
seg_lv(seg, s)->status &= ~LVM_WRITE;
|
||||
/*
|
||||
* LVM_WRITE is 32-bit, if we don't '|' it with
|
||||
* UINT64_C(0) it will remove all higher order flags
|
||||
*/
|
||||
seg_lv(seg, s)->status &= ~(UINT64_C(0) | LVM_WRITE);
|
||||
break;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user