mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-02 01:18:26 +03:00
lv_manip: fall back to direct zeroing on any BLKZEROOUT ioctl failure
When BLKZEROOUT ioctl fails, it should not stop us from trying the direct zeroing as a fallback action, since this is an optimization only. We should be able to continue with new LV creation if we succeed with that direct fallback then. Related report: https://issues.redhat.com/browse/RHEL-58737
This commit is contained in:
parent
6ab2a22fcf
commit
e96d6b7442
@ -1,5 +1,6 @@
|
||||
Version 2.03.28 -
|
||||
==================
|
||||
Fall back to direct zeroing if BLKZEROOUT fails during new LV initialization.
|
||||
|
||||
Version 2.03.27 - 02nd October 2024
|
||||
===================================
|
||||
|
@ -8829,16 +8829,17 @@ int wipe_lv(struct logical_volume *lv, struct wipe_params wp)
|
||||
range[1] = end - range[0];
|
||||
|
||||
if (ioctl(dev->bcache_fd, BLKZEROOUT, &range)) {
|
||||
if (errno == EINVAL)
|
||||
goto retry_with_dev_set; /* Kernel without support for BLKZEROOUT */
|
||||
/*
|
||||
* If errno == EINVAL, then the kernel is without support for BLKZEROOUT.
|
||||
* Fall back to dev_set_bytes silently in that case. Otherwise, also log
|
||||
* the errno message.
|
||||
*/
|
||||
if (errno != EINVAL) {
|
||||
log_sys_debug("ioctl", "BLKZEROOUT");
|
||||
sigint_restore();
|
||||
label_scan_invalidate(dev);
|
||||
log_error("%s logical volume %s at position " FMTu64 " and size " FMTu64 ".",
|
||||
sigint_caught() ? "Interrupted initialization of" : "Failed to initialize",
|
||||
display_lvname(lv), range[0], range[1]);
|
||||
return 0;
|
||||
log_debug("Falling back to direct zeroing.");
|
||||
}
|
||||
|
||||
goto retry_with_dev_set; }
|
||||
}
|
||||
} else
|
||||
retry_with_dev_set:
|
||||
|
Loading…
Reference in New Issue
Block a user