|
@@ -1,94 +0,0 @@
|
|
-From bc3f12bfac152a0c28951cec92340ba14f9ccee9 Mon Sep 17 00:00:00 2001
|
|
|
|
-From: =?UTF-8?q?=D0=BD=D0=B0=D0=B1?= <nabijaczleweli@nabijaczleweli.xyz>
|
|
|
|
-Date: Mon, 28 Mar 2022 19:24:22 +0200
|
|
|
|
-Subject: [PATCH] config: user: check for <aio.h>
|
|
|
|
-MIME-Version: 1.0
|
|
|
|
-Content-Type: text/plain; charset=UTF-8
|
|
|
|
-Content-Transfer-Encoding: 8bit
|
|
|
|
-
|
|
|
|
-And always zpool_read_label_slow() on non-conformant libcs
|
|
|
|
-
|
|
|
|
-Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
|
|
|
|
-Co-authored-by: José Luis Salvador Rufo <salvador.joseluis@gmail.com>
|
|
|
|
-Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
|
|
|
|
-Closes #13207
|
|
|
|
-Closes #13254
|
|
|
|
-Upstream: https://github.com/openzfs/zfs/commit/bc3f12bfac152a0c28951cec92340ba14f9ccee9
|
|
|
|
-[yann.morin.1998@free.fr: backport from upstream]
|
|
|
|
-Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
|
|
|
|
----
|
|
|
|
- config/user-aio.h.m4 | 7 +++++++
|
|
|
|
- config/user-libaio.m4 | 2 +-
|
|
|
|
- config/user.m4 | 1 +
|
|
|
|
- lib/libzutil/zutil_import.c | 6 ++++++
|
|
|
|
- 4 files changed, 15 insertions(+), 1 deletion(-)
|
|
|
|
- create mode 100644 config/user-aio.h.m4
|
|
|
|
-
|
|
|
|
-diff --git a/config/user-aio.h.m4 b/config/user-aio.h.m4
|
|
|
|
-new file mode 100644
|
|
|
|
-index 00000000000..152c0946722
|
|
|
|
---- /dev/null
|
|
|
|
-+++ b/config/user-aio.h.m4
|
|
|
|
-@@ -0,0 +1,7 @@
|
|
|
|
-+dnl #
|
|
|
|
-+dnl # POSIX specifies <aio.h> as part of realtime extensions,
|
|
|
|
-+dnl # and is missing from at least uClibc – force fallbacks there
|
|
|
|
-+dnl #
|
|
|
|
-+AC_DEFUN([ZFS_AC_CONFIG_USER_AIO_H], [
|
|
|
|
-+ ZFS_AC_FIND_SYSTEM_LIBRARY(AIO_H, [], [aio.h], [], [rt], [lio_listio])
|
|
|
|
-+])
|
|
|
|
-diff --git a/config/user-libaio.m4 b/config/user-libaio.m4
|
|
|
|
-index 95c144d76b4..8009bd11b3e 100644
|
|
|
|
---- a/config/user-libaio.m4
|
|
|
|
-+++ b/config/user-libaio.m4
|
|
|
|
-@@ -1,5 +1,5 @@
|
|
|
|
- dnl #
|
|
|
|
--dnl # Check for libaio - only used for libaiot test cases.
|
|
|
|
-+dnl # Check for libaio - only used for mmap_libaio test cases.
|
|
|
|
- dnl #
|
|
|
|
- AC_DEFUN([ZFS_AC_CONFIG_USER_LIBAIO], [
|
|
|
|
- ZFS_AC_FIND_SYSTEM_LIBRARY(LIBAIO, [], [libaio.h], [], [aio], [], [user_libaio=yes], [user_libaio=no])
|
|
|
|
-diff --git a/config/user.m4 b/config/user.m4
|
|
|
|
-index 670820b3771..f450af47e04 100644
|
|
|
|
---- a/config/user.m4
|
|
|
|
-+++ b/config/user.m4
|
|
|
|
-@@ -23,6 +23,7 @@ AC_DEFUN([ZFS_AC_CONFIG_USER], [
|
|
|
|
- ZFS_AC_CONFIG_USER_LIBAIO
|
|
|
|
- ZFS_AC_CONFIG_USER_LIBATOMIC
|
|
|
|
- ZFS_AC_CONFIG_USER_LIBFETCH
|
|
|
|
-+ ZFS_AC_CONFIG_USER_AIO_H
|
|
|
|
- ZFS_AC_CONFIG_USER_CLOCK_GETTIME
|
|
|
|
- ZFS_AC_CONFIG_USER_PAM
|
|
|
|
- ZFS_AC_CONFIG_USER_RUNSTATEDIR
|
|
|
|
-diff --git a/lib/libzutil/zutil_import.c b/lib/libzutil/zutil_import.c
|
|
|
|
-index d7547c4249e..3744a1c3474 100644
|
|
|
|
---- a/lib/libzutil/zutil_import.c
|
|
|
|
-+++ b/lib/libzutil/zutil_import.c
|
|
|
|
-@@ -47,7 +47,9 @@
|
|
|
|
- * using our derived config, and record the results.
|
|
|
|
- */
|
|
|
|
-
|
|
|
|
-+#ifdef HAVE_AIO_H
|
|
|
|
- #include <aio.h>
|
|
|
|
-+#endif
|
|
|
|
- #include <ctype.h>
|
|
|
|
- #include <dirent.h>
|
|
|
|
- #include <errno.h>
|
|
|
|
-@@ -982,6 +984,9 @@ zpool_read_label_slow(int fd, nvlist_t **config, int *num_labels)
|
|
|
|
- int
|
|
|
|
- zpool_read_label(int fd, nvlist_t **config, int *num_labels)
|
|
|
|
- {
|
|
|
|
-+#ifndef HAVE_AIO_H
|
|
|
|
-+ return (zpool_read_label_slow(fd, config, num_labels));
|
|
|
|
-+#else
|
|
|
|
- struct stat64 statbuf;
|
|
|
|
- struct aiocb aiocbs[VDEV_LABELS];
|
|
|
|
- struct aiocb *aiocbps[VDEV_LABELS];
|
|
|
|
-@@ -1104,6 +1109,7 @@ zpool_read_label(int fd, nvlist_t **config, int *num_labels)
|
|
|
|
- *config = expected_config;
|
|
|
|
-
|
|
|
|
- return (0);
|
|
|
|
-+#endif
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /*
|
|
|