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

wipe_lv: use zeroing ioctl only for large sizes

There is no easy way to detect, whether device supports zeroing,
and kernel also zeroes device when it's not directly supported,
but with extra message:

operation not supported error, dev X, sector Y op 0x9:(WRITE_ZEROES)...

So to avoid generating such message with every 'lvcreate', use for
zeroing of upto 8K just standard write of zeroed page.
(maybe we can go with even larger sizes).
This commit is contained in:
Zdenek Kabelac 2023-04-24 23:58:21 +02:00
parent 31cfcf7ce9
commit 8947964f10

View File

@ -8718,7 +8718,7 @@ int wipe_lv(struct logical_volume *lv, struct wipe_params wp)
display_lvname(lv), wp.zero_value);
#ifdef HAVE_BLKZEROOUT
if (!test_mode() && !wp.zero_value) {
if (!test_mode() && !wp.zero_value && (zero_sectors > 16)) {
/* TODO: maybe integrate with bcache_zero_set() */
const uint64_t end = zero_sectors << SECTOR_SHIFT;
uint64_t range[2] = { 0, 1024 * 1024 }; /* zeroing with 1M steps (for better ^C support) */