mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-11-17 01:51:00 +03:00
config: user: check for <aio.h>
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
This commit is contained in:
parent
b61595ff86
commit
bc3f12bfac
7
config/user-aio.h.m4
Normal file
7
config/user-aio.h.m4
Normal file
@ -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])
|
||||||
|
])
|
@ -1,5 +1,5 @@
|
|||||||
dnl #
|
dnl #
|
||||||
dnl # Check for libaio - only used for libaiot test cases.
|
dnl # Check for libaio - only used for mmap_libaio test cases.
|
||||||
dnl #
|
dnl #
|
||||||
AC_DEFUN([ZFS_AC_CONFIG_USER_LIBAIO], [
|
AC_DEFUN([ZFS_AC_CONFIG_USER_LIBAIO], [
|
||||||
ZFS_AC_FIND_SYSTEM_LIBRARY(LIBAIO, [], [libaio.h], [], [aio], [], [user_libaio=yes], [user_libaio=no])
|
ZFS_AC_FIND_SYSTEM_LIBRARY(LIBAIO, [], [libaio.h], [], [aio], [], [user_libaio=yes], [user_libaio=no])
|
||||||
|
@ -23,6 +23,7 @@ AC_DEFUN([ZFS_AC_CONFIG_USER], [
|
|||||||
ZFS_AC_CONFIG_USER_LIBAIO
|
ZFS_AC_CONFIG_USER_LIBAIO
|
||||||
ZFS_AC_CONFIG_USER_LIBATOMIC
|
ZFS_AC_CONFIG_USER_LIBATOMIC
|
||||||
ZFS_AC_CONFIG_USER_LIBFETCH
|
ZFS_AC_CONFIG_USER_LIBFETCH
|
||||||
|
ZFS_AC_CONFIG_USER_AIO_H
|
||||||
ZFS_AC_CONFIG_USER_CLOCK_GETTIME
|
ZFS_AC_CONFIG_USER_CLOCK_GETTIME
|
||||||
ZFS_AC_CONFIG_USER_PAM
|
ZFS_AC_CONFIG_USER_PAM
|
||||||
ZFS_AC_CONFIG_USER_RUNSTATEDIR
|
ZFS_AC_CONFIG_USER_RUNSTATEDIR
|
||||||
|
@ -47,7 +47,9 @@
|
|||||||
* using our derived config, and record the results.
|
* using our derived config, and record the results.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_AIO_H
|
||||||
#include <aio.h>
|
#include <aio.h>
|
||||||
|
#endif
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
@ -982,6 +984,9 @@ zpool_read_label_slow(int fd, nvlist_t **config, int *num_labels)
|
|||||||
int
|
int
|
||||||
zpool_read_label(int fd, nvlist_t **config, int *num_labels)
|
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 stat64 statbuf;
|
||||||
struct aiocb aiocbs[VDEV_LABELS];
|
struct aiocb aiocbs[VDEV_LABELS];
|
||||||
struct aiocb *aiocbps[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;
|
*config = expected_config;
|
||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user