mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-10 05:18:36 +03:00
acdc731e83
lib/metadata/lv_manip.c:_sufficient_pes_free() was calculating the required space for RAID allocations incorrectly due to double accounting. This resulted in failure to allocate when available space was tight. When RAID data and metadata areas are allocated together, the total amount is stored in ah->new_extents and ah->alloc_and_split_meta is set. '_sufficient_pes_free' was adding the necessary metadata extents to ah->new_extents without ever checking ah->alloc_and_split_meta. This often led to double accounting of the metadata extents. This patch checks 'ah->alloc_and_split_meta' to perform proper calculations for RAID. This error is only present in the function that checks for the needed space, not in the functions that do the actual allocation. |
||
---|---|---|
.. | ||
lv_alloc.h | ||
lv_manip.c | ||
lv.c | ||
lv.h | ||
merge.c | ||
metadata-exported.h | ||
metadata.c | ||
metadata.h | ||
mirror.c | ||
pv_alloc.h | ||
pv_manip.c | ||
pv_map.c | ||
pv_map.h | ||
pv.c | ||
pv.h | ||
raid_manip.c | ||
replicator_manip.c | ||
segtype.c | ||
segtype.h | ||
snapshot_manip.c | ||
thin_manip.c | ||
vg.c | ||
vg.h |