X-Git-Url: http://git.squeep.com/?p=portage-squeep;a=blobdiff_plain;f=sys-fs%2Fzfs%2Ffiles%2F0.7.13-ZPOOL_IMPORT_UDEV_TIMEOUT_MS.patch;fp=sys-fs%2Fzfs%2Ffiles%2F0.7.13-ZPOOL_IMPORT_UDEV_TIMEOUT_MS.patch;h=922e5951bdf0e46a213ad8125959034a714be3e1;hp=0000000000000000000000000000000000000000;hb=703fe789c88c5e89cd1012ef35719a14613b176f;hpb=d114b4f65225948d38665ecb98cd45e55918156d diff --git a/sys-fs/zfs/files/0.7.13-ZPOOL_IMPORT_UDEV_TIMEOUT_MS.patch b/sys-fs/zfs/files/0.7.13-ZPOOL_IMPORT_UDEV_TIMEOUT_MS.patch new file mode 100644 index 0000000..922e595 --- /dev/null +++ b/sys-fs/zfs/files/0.7.13-ZPOOL_IMPORT_UDEV_TIMEOUT_MS.patch @@ -0,0 +1,70 @@ +From a0767672aac01f41516550e3808ff72da893102f Mon Sep 17 00:00:00 2001 +From: Georgy Yakovlev +Date: Tue, 26 Nov 2019 12:07:36 -0800 +Subject: [PATCH] backport udev timeout patch + +https://github.com/zfsonlinux/zfs/commit/803884217f9b9b5fb235d7c5e78a809d271f6387 +--- + lib/libzfs/libzfs_import.c | 11 ++++++++++- + man/man8/zpool.8 | 6 ++++++ + 2 files changed, 16 insertions(+), 1 deletion(-) + +diff --git a/lib/libzfs/libzfs_import.c b/lib/libzfs/libzfs_import.c +index 9dbf207..cd08806 100644 +--- a/lib/libzfs/libzfs_import.c ++++ b/lib/libzfs/libzfs_import.c +@@ -53,6 +53,7 @@ + #endif + #include + #include ++#include + #include + #include + #include +@@ -1594,17 +1595,25 @@ zpool_open_func(void *arg) + if (rn->rn_labelpaths) { + char *path = NULL; + char *devid = NULL; ++ char *env = NULL; + rdsk_node_t *slice; + avl_index_t where; ++ int timeout; + int error; + + if (label_paths(rn->rn_hdl, rn->rn_config, &path, &devid)) + return; + ++ env = getenv("ZPOOL_IMPORT_UDEV_TIMEOUT_MS"); ++ if ((env == NULL) || sscanf(env, "%d", &timeout) != 1 || ++ timeout < 0) { ++ timeout = DISK_LABEL_WAIT; ++ } ++ + /* + * Allow devlinks to stabilize so all paths are available. + */ +- zpool_label_disk_wait(rn->rn_name, DISK_LABEL_WAIT); ++ zpool_label_disk_wait(rn->rn_name, timeout); + + if (path != NULL) { + slice = zfs_alloc(hdl, sizeof (rdsk_node_t)); +diff --git a/man/man8/zpool.8 b/man/man8/zpool.8 +index 46e531e..10a19b5 100644 +--- a/man/man8/zpool.8 ++++ b/man/man8/zpool.8 +@@ -2291,6 +2291,12 @@ Similar to the + option in + .Nm zpool import . + .El ++.Bl -tag -width "ZPOOL_IMPORT_UDEV_TIMEOUT_MS" ++.It Ev ZPOOL_IMPORT_UDEV_TIMEOUT_MS ++The maximum time in milliseconds that ++.Nm zpool import ++will wait for an expected device to be available. ++.El + .Bl -tag -width "ZPOOL_VDEV_NAME_GUID" + .It Ev ZPOOL_VDEV_NAME_GUID + Cause +-- +2.24.0 +