1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

thin: fix low_water_mark threshold calc

Reporter noticed lvm2 incorrectly translated
lvm2 threshold value to  water mark in commit:
99237f0908

Fix it by properly translating size to number of
blocks in thin-pool and then calc for free blocks
matching configured lvm2 threshold value.

Reported-by: Ming-Hung Tsai <mingnus@gmail.com>
This commit is contained in:
Zdenek Kabelac 2016-02-11 18:05:36 +01:00
parent 8423be80ee
commit 02f2916b5b
2 changed files with 4 additions and 2 deletions

View File

@ -1,5 +1,6 @@
Version 2.02.142 - Version 2.02.142 -
==================================== ====================================
Fix thinp watermark calc for data LV for faster dmeventd responce (2.02.133).
Use use_blkid_wiping=0 if not defined in lvm.conf and support not compiled in. Use use_blkid_wiping=0 if not defined in lvm.conf and support not compiled in.
Do not check for suspended devices if scanning for lvmetad update. Do not check for suspended devices if scanning for lvmetad update.
Fix part. table filter with external_device_info_source="udev" and blkid<2.20. Fix part. table filter with external_device_info_source="udev" and blkid<2.20.

View File

@ -295,9 +295,10 @@ static int _thin_pool_add_target_line(struct dev_manager *dm,
if (threshold < 50) if (threshold < 50)
threshold = 50; threshold = 50;
if (threshold < 100) if (threshold < 100)
low_water_mark = (len * threshold + 99) / 100; /* Translate to number of free pool blocks to trigger watermark */
low_water_mark = len / seg->chunk_size * (100 - threshold) / 100;
else else
low_water_mark = len; low_water_mark = 0;
if (!dm_tree_node_add_thin_pool_target(node, len, if (!dm_tree_node_add_thin_pool_target(node, len,
seg->transaction_id, seg->transaction_id,