zfs/lib
Richard Yao e416b165ff Implement ZPOOL_IMPORT_UDEV_TIMEOUT_MS
Since 0.7.0, zpool import would unconditionally block on udev for 30
seconds. This introduced a regression in initramfs environments that
lack udev (particularly mdev based environments), yet use a zfs userland
tools intended for the system that had been built against udev. Gentoo's
genkernel is the main example, although custom user initramfs
environments would be similarly impacted unless special builds of the
ZFS userland utilities were done for them.  Such environments already
have their own mechanisms for blocking until device nodes are ready
(such as genkernel's scandelay parameter), so it is unnecessary for
zpool import to block on a non-existent udev until a timeout is reached
inside of them.

Rather than trying to intelligently determine whether udev is available
on the system to avoid unnecessarily blocking in such environments, it
seems best to just allow the environment to override the timeout.  I
propose that we add an environment variable called
ZPOOL_IMPORT_UDEV_TIMEOUT_MS. Setting it to 0 would restore the 0.6.x
behavior that was more desirable in mdev based initramfs environments.
This allows the system user land utilities to be reused when building
mdev-based initramfs archives.

Reviewed-by: Igor Kozhukhov <igor@dilos.org>
Reviewed-by: Jorgen Lundman <lundman@lundman.net>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Georgy Yakovlev <gyakovlev@gentoo.org>
Signed-off-by: Richard Yao <ryao@gentoo.org>
Closes #9436
2020-01-22 13:49:03 -08:00
..
libavl Support -fsanitize=address with --enable-asan 2018-01-10 10:49:27 -08:00
libefi Fix typos in lib/ 2020-01-22 13:48:59 -08:00
libicp Add support for selecting encryption backend 2018-08-02 11:59:24 -07:00
libnvpair config: better libtirpc detection 2019-03-02 16:19:05 -08:00
libshare Fix typos in lib/ 2020-01-22 13:48:59 -08:00
libspl Fix typos in lib/ 2020-01-22 13:48:59 -08:00
libtpool Fix typos in lib/ 2020-01-22 13:48:59 -08:00
libunicode Support -fsanitize=address with --enable-asan 2018-01-10 10:49:27 -08:00
libuutil Update build system and packaging 2018-05-29 16:00:33 -07:00
libzfs Refactor libzfs_error_init newlines 2020-01-22 13:49:01 -08:00
libzfs_core Use ZFS_DEV macro instead of literals 2019-09-25 11:27:48 -07:00
libzpool OpenZFS 9425 - channel programs can be interrupted 2020-01-22 13:48:56 -08:00
libzutil Implement ZPOOL_IMPORT_UDEV_TIMEOUT_MS 2020-01-22 13:49:03 -08:00
Makefile.am Add libzutil for libzfs or libzpool consumers 2018-11-05 11:22:33 -08:00