mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-11-17 18:11:00 +03:00
9b2048c26b
In the linux-2.6.36 kernel the fs_struct lock was changed from a rwlock_t to a spinlock_t. If the kernel would export the set_fs_pwd() symbol by default this would not have caused us any issues, but they don't. So we're forced to add a new autoconf check which sets the HAVE_FS_STRUCT_SPINLOCK define when a spinlock_t is used. We can then correctly use either spin_lock or write_lock in our custom set_fs_pwd() implementation.
273 lines
6.2 KiB
C
273 lines
6.2 KiB
C
/* spl_config.h.in. Generated from configure.ac by autoheader. */
|
|
|
|
/* Atomic types use spinlocks */
|
|
#undef ATOMIC_SPINLOCK
|
|
|
|
/* Define to 1 to enable basic kmem accounting */
|
|
#undef DEBUG_KMEM
|
|
|
|
/* Define to 1 to enable detailed kmem tracking */
|
|
#undef DEBUG_KMEM_TRACKING
|
|
|
|
/* register_sysctl_table() wants 2 args */
|
|
#undef HAVE_2ARGS_REGISTER_SYSCTL
|
|
|
|
/* set_fs_pwd() wants 2 args */
|
|
#undef HAVE_2ARGS_SET_FS_PWD
|
|
|
|
/* vfs_unlink() wants 2 args */
|
|
#undef HAVE_2ARGS_VFS_UNLINK
|
|
|
|
/* file_fsync() wants 3 args */
|
|
#undef HAVE_3ARGS_FILE_FSYNC
|
|
|
|
/* INIT_WORK wants 3 args */
|
|
#undef HAVE_3ARGS_INIT_WORK
|
|
|
|
/* on_each_cpu wants 3 args */
|
|
#undef HAVE_3ARGS_ON_EACH_CPU
|
|
|
|
/* shrinker callback wants 3 args */
|
|
#undef HAVE_3ARGS_SHRINKER_CALLBACK
|
|
|
|
/* vfs_rename() wants 4 args */
|
|
#undef HAVE_4ARGS_VFS_RENAME
|
|
|
|
/* device_create wants 5 args */
|
|
#undef HAVE_5ARGS_DEVICE_CREATE
|
|
|
|
/* proc_handler() wants 5 args */
|
|
#undef HAVE_5ARGS_PROC_HANDLER
|
|
|
|
/* kernel defines atomic64_cmpxchg */
|
|
#undef HAVE_ATOMIC64_CMPXCHG
|
|
|
|
/* kernel defines atomic64_t */
|
|
#undef HAVE_ATOMIC64_T
|
|
|
|
/* kernel defines atomic64_xchg */
|
|
#undef HAVE_ATOMIC64_XCHG
|
|
|
|
/* class_device_create() is available */
|
|
#undef HAVE_CLASS_DEVICE_CREATE
|
|
|
|
/* struct cred exists */
|
|
#undef HAVE_CRED_STRUCT
|
|
|
|
/* struct ctl_table has ctl_name */
|
|
#undef HAVE_CTL_NAME
|
|
|
|
/* unnumbered sysctl support exists */
|
|
#undef HAVE_CTL_UNNUMBERED
|
|
|
|
/* device_create() is available */
|
|
#undef HAVE_DEVICE_CREATE
|
|
|
|
/* Define to 1 if you have the <dlfcn.h> header file. */
|
|
#undef HAVE_DLFCN_H
|
|
|
|
/* linux/fdtable.h exists */
|
|
#undef HAVE_FDTABLE_HEADER
|
|
|
|
/* files_fdtable() is available */
|
|
#undef HAVE_FILES_FDTABLE
|
|
|
|
/* first_online_pgdat() is available */
|
|
#undef HAVE_FIRST_ONLINE_PGDAT
|
|
|
|
/* fls64() is available */
|
|
#undef HAVE_FLS64
|
|
|
|
/* struct fs_struct uses spinlock_t */
|
|
#undef HAVE_FS_STRUCT_SPINLOCK
|
|
|
|
/* get_vmalloc_info() is available */
|
|
#undef HAVE_GET_VMALLOC_INFO
|
|
|
|
/* get_zone_counts() is available */
|
|
#undef HAVE_GET_ZONE_COUNTS
|
|
|
|
/* global_page_state() is available */
|
|
#undef HAVE_GLOBAL_PAGE_STATE
|
|
|
|
/* groups_search() is available */
|
|
#undef HAVE_GROUPS_SEARCH
|
|
|
|
/* init_utsname() is available */
|
|
#undef HAVE_INIT_UTSNAME
|
|
|
|
/* struct inode has i_mutex */
|
|
#undef HAVE_INODE_I_MUTEX
|
|
|
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
|
#undef HAVE_INTTYPES_H
|
|
|
|
/* kallsyms_lookup_name() is available */
|
|
#undef HAVE_KALLSYMS_LOOKUP_NAME
|
|
|
|
/* kmalloc_node() is available */
|
|
#undef HAVE_KMALLOC_NODE
|
|
|
|
/* kvasprintf() is available */
|
|
#undef HAVE_KVASPRINTF
|
|
|
|
/* Define to 1 if you have the <memory.h> header file. */
|
|
#undef HAVE_MEMORY_H
|
|
|
|
/* monotonic_clock() is available */
|
|
#undef HAVE_MONOTONIC_CLOCK
|
|
|
|
/* mutex_lock_nested() is available */
|
|
#undef HAVE_MUTEX_LOCK_NESTED
|
|
|
|
/* struct mutex has owner */
|
|
#undef HAVE_MUTEX_OWNER
|
|
|
|
/* next_online_pgdat() is available */
|
|
#undef HAVE_NEXT_ONLINE_PGDAT
|
|
|
|
/* next_zone() is available */
|
|
#undef HAVE_NEXT_ZONE
|
|
|
|
/* struct path used in struct nameidata */
|
|
#undef HAVE_PATH_IN_NAMEIDATA
|
|
|
|
/* pgdat helpers are available */
|
|
#undef HAVE_PGDAT_HELPERS
|
|
|
|
/* pgdat_list is available */
|
|
#undef HAVE_PGDAT_LIST
|
|
|
|
/* __put_task_struct() is available */
|
|
#undef HAVE_PUT_TASK_STRUCT
|
|
|
|
/* set_fs_pwd() is available */
|
|
#undef HAVE_SET_FS_PWD
|
|
|
|
/* set_normalized_timespec() is available as export */
|
|
#undef HAVE_SET_NORMALIZED_TIMESPEC_EXPORT
|
|
|
|
/* set_normalized_timespec() is available as inline */
|
|
#undef HAVE_SET_NORMALIZED_TIMESPEC_INLINE
|
|
|
|
/* set_shrinker() available */
|
|
#undef HAVE_SET_SHRINKER
|
|
|
|
/* Define to 1 if you have the <stdint.h> header file. */
|
|
#undef HAVE_STDINT_H
|
|
|
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
|
#undef HAVE_STDLIB_H
|
|
|
|
/* Define to 1 if you have the <strings.h> header file. */
|
|
#undef HAVE_STRINGS_H
|
|
|
|
/* Define to 1 if you have the <string.h> header file. */
|
|
#undef HAVE_STRING_H
|
|
|
|
/* Define to 1 if you have the <sys/stat.h> header file. */
|
|
#undef HAVE_SYS_STAT_H
|
|
|
|
/* Define to 1 if you have the <sys/types.h> header file. */
|
|
#undef HAVE_SYS_TYPES_H
|
|
|
|
/* task_curr() exported */
|
|
#undef HAVE_TASK_CURR
|
|
|
|
/* timespec_sub() is available */
|
|
#undef HAVE_TIMESPEC_SUB
|
|
|
|
/* linux/uaccess.h exists */
|
|
#undef HAVE_UACCESS_HEADER
|
|
|
|
/* kernel defines uintptr_t */
|
|
#undef HAVE_UINTPTR_T
|
|
|
|
/* Define to 1 if you have the <unistd.h> header file. */
|
|
#undef HAVE_UNISTD_H
|
|
|
|
/* user_path_dir() is available */
|
|
#undef HAVE_USER_PATH_DIR
|
|
|
|
/* Page state NR_ACTIVE is available */
|
|
#undef HAVE_ZONE_STAT_ITEM_NR_ACTIVE
|
|
|
|
/* Page state NR_ACTIVE_ANON is available */
|
|
#undef HAVE_ZONE_STAT_ITEM_NR_ACTIVE_ANON
|
|
|
|
/* Page state NR_ACTIVE_FILE is available */
|
|
#undef HAVE_ZONE_STAT_ITEM_NR_ACTIVE_FILE
|
|
|
|
/* Page state NR_FREE_PAGES is available */
|
|
#undef HAVE_ZONE_STAT_ITEM_NR_FREE_PAGES
|
|
|
|
/* Page state NR_INACTIVE is available */
|
|
#undef HAVE_ZONE_STAT_ITEM_NR_INACTIVE
|
|
|
|
/* Page state NR_INACTIVE_ANON is available */
|
|
#undef HAVE_ZONE_STAT_ITEM_NR_INACTIVE_ANON
|
|
|
|
/* Page state NR_INACTIVE_FILE is available */
|
|
#undef HAVE_ZONE_STAT_ITEM_NR_INACTIVE_FILE
|
|
|
|
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
|
*/
|
|
#undef LT_OBJDIR
|
|
|
|
/* get_zone_counts() is needed */
|
|
#undef NEED_GET_ZONE_COUNTS
|
|
|
|
/* Name of package */
|
|
#undef PACKAGE
|
|
|
|
/* Define to the address where bug reports for this package should be sent. */
|
|
#undef PACKAGE_BUGREPORT
|
|
|
|
/* Define to the full name of this package. */
|
|
#undef PACKAGE_NAME
|
|
|
|
/* Define to the full name and version of this package. */
|
|
#undef PACKAGE_STRING
|
|
|
|
/* Define to the one symbol short name of this package. */
|
|
#undef PACKAGE_TARNAME
|
|
|
|
/* Define to the version of this package. */
|
|
#undef PACKAGE_VERSION
|
|
|
|
/* rwsem_is_locked() acquires sem->wait_lock */
|
|
#undef RWSEM_IS_LOCKED_TAKES_WAIT_LOCK
|
|
|
|
/* Define the project alias string. */
|
|
#undef SPL_META_ALIAS
|
|
|
|
/* Define the project author. */
|
|
#undef SPL_META_AUTHOR
|
|
|
|
/* Define the project release date. */
|
|
#undef SPL_META_DATA
|
|
|
|
/* Define the libtool library 'age' version information. */
|
|
#undef SPL_META_LT_AGE
|
|
|
|
/* Define the libtool library 'current' version information. */
|
|
#undef SPL_META_LT_CURRENT
|
|
|
|
/* Define the libtool library 'revision' version information. */
|
|
#undef SPL_META_LT_REVISION
|
|
|
|
/* Define the project name. */
|
|
#undef SPL_META_NAME
|
|
|
|
/* Define the project release. */
|
|
#undef SPL_META_RELEASE
|
|
|
|
/* Define the project version. */
|
|
#undef SPL_META_VERSION
|
|
|
|
/* Define to 1 if you have the ANSI C header files. */
|
|
#undef STDC_HEADERS
|
|
|
|
/* Version number of package */
|
|
#undef VERSION
|