X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;ds=sidebyside;f=configure;fp=configure;h=28e1c2d05342ad227f351f1fd3f12fa6b99d150d;hb=4d815aed2cc4748363224fe8295748a38e0d054d;hp=97cf3bb0857b26e284cc8dc8e155a2030d9ade58;hpb=94a40997a3cce64d8f2408a2cc6233fdfa307597;p=mirror_zfs-debian.git diff --git a/configure b/configure index 97cf3bb0..28e1c2d0 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for zfs 0.6.5.4. +# Generated by GNU Autoconf 2.68 for zfs 0.6.5.5. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -567,8 +567,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='zfs' PACKAGE_TARNAME='zfs' -PACKAGE_VERSION='0.6.5.4' -PACKAGE_STRING='zfs 0.6.5.4' +PACKAGE_VERSION='0.6.5.5' +PACKAGE_STRING='zfs 0.6.5.5' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1401,7 +1401,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures zfs 0.6.5.4 to adapt to many kinds of systems. +\`configure' configures zfs 0.6.5.5 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1472,7 +1472,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of zfs 0.6.5.4:";; + short | recursive ) echo "Configuration of zfs 0.6.5.5:";; esac cat <<\_ACEOF @@ -1607,7 +1607,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -zfs configure 0.6.5.4 +zfs configure 0.6.5.5 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. @@ -1972,7 +1972,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by zfs $as_me 0.6.5.4, which was +It was created by zfs $as_me 0.6.5.5, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -3099,7 +3099,7 @@ fi # Define the identity of the package. PACKAGE='zfs' - VERSION='0.6.5.4' + VERSION='0.6.5.5' cat >>confdefs.h <<_ACEOF @@ -14836,8 +14836,9 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether super_block uses const struct xattr_hander" >&5 -$as_echo_n "checking whether super_block uses const struct xattr_hander... " >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether super_block uses const struct xattr_handler" >&5 +$as_echo_n "checking whether super_block uses const struct xattr_handler... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -14915,8 +14916,8 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->get() wants dentry" >&5 -$as_echo_n "checking whether xattr_handler->get() wants dentry... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->get() wants xattr_handler" >&5 +$as_echo_n "checking whether xattr_handler->get() wants xattr_handler... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -14924,8 +14925,9 @@ cat confdefs.h - <<_ACEOF >conftest.c #include - int get(struct dentry *dentry, const char *name, - void *buffer, size_t size, int handler_flags) { return 0; } + int get(const struct xattr_handler *handler, + struct dentry *dentry, const char *name, + void *buffer, size_t size) { return 0; } static const struct xattr_handler xops __attribute__ ((unused)) = { .get = get, @@ -14968,17 +14970,17 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_DENTRY_XATTR_GET 1" >>confdefs.h +$as_echo "#define HAVE_XATTR_GET_HANDLER 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->get() wants xattr_handler" >&5 -$as_echo_n "checking whether xattr_handler->get() wants xattr_handler... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->get() wants dentry" >&5 +$as_echo_n "checking whether xattr_handler->get() wants dentry... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -14986,8 +14988,9 @@ cat confdefs.h - <<_ACEOF >conftest.c #include - int get(const struct xattr_handler *handler, struct dentry *dentry, - const char *name, void *buffer, size_t size) { return 0; } + int get(struct dentry *dentry, const char *name, + void *buffer, size_t size, int handler_flags) + { return 0; } static const struct xattr_handler xops __attribute__ ((unused)) = { .get = get, @@ -15030,15 +15033,76 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_HANDLER_XATTR_GET 1" >>confdefs.h +$as_echo "#define HAVE_XATTR_GET_DENTRY 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->get() wants inode" >&5 +$as_echo_n "checking whether xattr_handler->get() wants inode... " >&6; } + + +cat confdefs.h - <<_ACEOF >conftest.c + + + #include + + int get(struct inode *ip, const char *name, + void *buffer, size_t size) { return 0; } + static const struct xattr_handler + xops __attribute__ ((unused)) = { + .get = get, + }; + +int +main (void) +{ + + + ; + return 0; +} + +_ACEOF + + + +cat - <<_ACEOF >conftest.h + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + if { ac_try='cp conftest.c conftest.h build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null && { ac_try='test -s build/conftest.o' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_XATTR_GET_INODE 1" >>confdefs.h + + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + as_fn_error $? "no; please file a bug report" "$LINENO" 5 @@ -15055,8 +15119,15 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->set() wants dentry" >&5 -$as_echo_n "checking whether xattr_handler->set() wants dentry... " >&6; } + +fi + rm -Rf build + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->set() wants xattr_handler" >&5 +$as_echo_n "checking whether xattr_handler->set() wants xattr_handler... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -15064,9 +15135,10 @@ cat confdefs.h - <<_ACEOF >conftest.c #include - int set(struct dentry *dentry, const char *name, - const void *buffer, size_t size, int flags, - int handler_flags) { return 0; } + int set(const struct xattr_handler *handler, + struct dentry *dentry, const char *name, + const void *buffer, size_t size, int flags) + { return 0; } static const struct xattr_handler xops __attribute__ ((unused)) = { .set = set, @@ -15109,17 +15181,17 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_DENTRY_XATTR_SET 1" >>confdefs.h +$as_echo "#define HAVE_XATTR_SET_HANDLER 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->set() wants xattr_handler" >&5 -$as_echo_n "checking whether xattr_handler->set() wants xattr_handler... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->set() wants dentry" >&5 +$as_echo_n "checking whether xattr_handler->set() wants dentry... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -15127,8 +15199,9 @@ cat confdefs.h - <<_ACEOF >conftest.c #include - int set(const struct xattr_handler *handler, struct dentry *dentry, - const char *name, const void *buffer, size_t size, int flags) { return 0; } + int set(struct dentry *dentry, const char *name, + const void *buffer, size_t size, int flags, + int handler_flags) { return 0; } static const struct xattr_handler xops __attribute__ ((unused)) = { .set = set, @@ -15171,15 +15244,77 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_HANDLER_XATTR_SET 1" >>confdefs.h +$as_echo "#define HAVE_XATTR_SET_DENTRY 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->set() wants inode" >&5 +$as_echo_n "checking whether xattr_handler->set() wants inode... " >&6; } + + +cat confdefs.h - <<_ACEOF >conftest.c + + + #include + + int set(struct inode *ip, const char *name, + const void *buffer, size_t size, int flags) + { return 0; } + static const struct xattr_handler + xops __attribute__ ((unused)) = { + .set = set, + }; + +int +main (void) +{ + + + ; + return 0; +} + +_ACEOF + + + +cat - <<_ACEOF >conftest.h + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + if { ac_try='cp conftest.c conftest.h build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null && { ac_try='test -s build/conftest.o' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_XATTR_SET_INODE 1" >>confdefs.h + + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + as_fn_error $? "no; please file a bug report" "$LINENO" 5 @@ -15196,8 +15331,15 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->list() wants dentry" >&5 -$as_echo_n "checking whether xattr_handler->list() wants dentry... " >&6; } + +fi + rm -Rf build + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->list() wants simple" >&5 +$as_echo_n "checking whether xattr_handler->list() wants simple... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -15205,9 +15347,7 @@ cat confdefs.h - <<_ACEOF >conftest.c #include - size_t list(struct dentry *dentry, char *list, size_t list_size, - const char *name, size_t name_len, int handler_flags) - { return 0; } + bool list(struct dentry *dentry) { return 0; } static const struct xattr_handler xops __attribute__ ((unused)) = { .list = list, @@ -15250,14 +15390,14 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_DENTRY_XATTR_LIST 1" >>confdefs.h +$as_echo "#define HAVE_XATTR_LIST_SIMPLE 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->list() wants xattr_handler" >&5 $as_echo_n "checking whether xattr_handler->list() wants xattr_handler... " >&6; } @@ -15268,8 +15408,9 @@ cat confdefs.h - <<_ACEOF >conftest.c #include - size_t list(const struct xattr_handler *handler, struct dentry *dentry, - char *list, size_t list_size, const char *name, size_t name_len) { return 0; } + size_t list(const struct xattr_handler *handler, + struct dentry *dentry, char *list, size_t list_size, + const char *name, size_t name_len) { return 0; } static const struct xattr_handler xops __attribute__ ((unused)) = { .list = list, @@ -15312,15 +15453,155 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_HANDLER_XATTR_LIST 1" >>confdefs.h +$as_echo "#define HAVE_XATTR_LIST_HANDLER 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->list() wants dentry" >&5 +$as_echo_n "checking whether xattr_handler->list() wants dentry... " >&6; } + + +cat confdefs.h - <<_ACEOF >conftest.c + + + #include + + size_t list(struct dentry *dentry, + char *list, size_t list_size, + const char *name, size_t name_len, + int handler_flags) { return 0; } + static const struct xattr_handler + xops __attribute__ ((unused)) = { + .list = list, + }; + +int +main (void) +{ + + + ; + return 0; +} + +_ACEOF + + + +cat - <<_ACEOF >conftest.h + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + if { ac_try='cp conftest.c conftest.h build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null && { ac_try='test -s build/conftest.o' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_XATTR_LIST_DENTRY 1" >>confdefs.h + + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->list() wants inode" >&5 +$as_echo_n "checking whether xattr_handler->list() wants inode... " >&6; } + + +cat confdefs.h - <<_ACEOF >conftest.c + + + #include + + size_t list(struct inode *ip, char *lst, + size_t list_size, const char *name, + size_t name_len) { return 0; } + static const struct xattr_handler + xops __attribute__ ((unused)) = { + .list = list, + }; + +int +main (void) +{ + + + ; + return 0; +} + +_ACEOF + + + +cat - <<_ACEOF >conftest.h + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + if { ac_try='cp conftest.c conftest.h build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null && { ac_try='test -s build/conftest.o' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_XATTR_LIST_INODE 1" >>confdefs.h + + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + as_fn_error $? "no; please file a bug report" "$LINENO" 5 + + + +fi + rm -Rf build + + + + + +fi + rm -Rf build + + @@ -17359,18 +17640,19 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->follow_link() passes nameidata" >&5 -$as_echo_n "checking whether iops->follow_link() passes nameidata... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->get_link() passes delayed" >&5 +$as_echo_n "checking whether iops->get_link() passes delayed... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c #include - const char *follow_link(struct dentry *de, void **cookie) - { return "symlink"; } - static struct inode_operations iops __attribute__ ((unused)) = { - .follow_link = follow_link, + const char *get_link(struct dentry *de, struct inode *ip, + struct delayed_call *done) { return "symlink"; } + static struct inode_operations + iops __attribute__ ((unused)) = { + .get_link = get_link, }; int @@ -17407,39 +17689,32 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_FOLLOW_LINK_NAMEIDATA 1" >>confdefs.h - - - - -fi - rm -Rf build + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +$as_echo "#define HAVE_GET_LINK_DELAYED 1" >>confdefs.h +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->put_link() passes nameidata" >&5 -$as_echo_n "checking whether iops->put_link() passes nameidata... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->get_link() passes cookie" >&5 +$as_echo_n "checking whether iops->get_link() passes cookie... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include - void put_link(struct inode *ip, void *cookie) { return; } - static struct inode_operations iops __attribute__ ((unused)) = { - .put_link = put_link, - }; + #include + const char *get_link(struct dentry *de, struct + inode *ip, void **cookie) { return "symlink"; } + static struct inode_operations + iops __attribute__ ((unused)) = { + .get_link = get_link, + }; int main (void) @@ -17475,39 +17750,32 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_PUT_LINK_NAMEIDATA 1" >>confdefs.h - - - - -fi - rm -Rf build +$as_echo "#define HAVE_GET_LINK_COOKIE 1" >>confdefs.h +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->truncate_range() exists" >&5 -$as_echo_n "checking whether iops->truncate_range() exists... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->follow_link() passes cookie" >&5 +$as_echo_n "checking whether iops->follow_link() passes cookie... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c #include - void truncate_range(struct inode *inode, loff_t start, - loff_t end) { return; } - static struct inode_operations iops __attribute__ ((unused)) = { - .truncate_range = truncate_range, + const char *follow_link(struct dentry *de, + void **cookie) { return "symlink"; } + static struct inode_operations + iops __attribute__ ((unused)) = { + .follow_link = follow_link, }; int @@ -17547,36 +17815,29 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_INODE_TRUNCATE_RANGE 1" >>confdefs.h +$as_echo "#define HAVE_FOLLOW_LINK_COOKIE 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - - - -fi - rm -Rf build - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dops->d_automount() exists" >&5 -$as_echo_n "checking whether dops->d_automount() exists... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->follow_link() passes nameidata" >&5 +$as_echo_n "checking whether iops->follow_link() passes nameidata... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include - struct vfsmount *d_automount(struct path *p) { return NULL; } - struct dentry_operations dops __attribute__ ((unused)) = { - .d_automount = d_automount, - }; + #include + void *follow_link(struct dentry *de, struct + nameidata *nd) { return (void *)NULL; } + static struct inode_operations + iops __attribute__ ((unused)) = { + .follow_link = follow_link, + }; int main (void) @@ -17612,18 +17873,39 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_AUTOMOUNT 1" >>confdefs.h +$as_echo "#define HAVE_FOLLOW_LINK_NAMEIDATA 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + as_fn_error $? "no; please file a bug report" "$LINENO" 5 + + + +fi + rm -Rf build + + + + + +fi + rm -Rf build + + + + + + +fi + rm -Rf build + + @@ -17633,19 +17915,14 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether eops->encode_fh() wants inode" >&5 -$as_echo_n "checking whether eops->encode_fh() wants inode... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include - int encode_fh(struct inode *inode, __u32 *fh, int *max_len, - struct inode *parent) { return 0; } - static struct export_operations eops __attribute__ ((unused))={ - .encode_fh = encode_fh, - }; + #if !defined(HAVE_GET_LINK_DELAYED) + #error "Expecting get_link() delayed done" + #endif int main (void) @@ -17681,39 +17958,28 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -$as_echo "#define HAVE_ENCODE_FH_WITH_INODE 1" >>confdefs.h +$as_echo "#define HAVE_PUT_LINK_DELAYED 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - - -fi - rm -Rf build - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether eops->commit_metadata() exists" >&5 -$as_echo_n "checking whether eops->commit_metadata() exists... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->put_link() passes cookie" >&5 +$as_echo_n "checking whether iops->put_link() passes cookie... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include - int commit_metadata(struct inode *inode) { return 0; } - static struct export_operations eops __attribute__ ((unused))={ - .commit_metadata = commit_metadata, - }; + #include + void put_link(struct inode *ip, void *cookie) + { return; } + static struct inode_operations + iops __attribute__ ((unused)) = { + .put_link = put_link, + }; int main (void) @@ -17749,41 +18015,37 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_COMMIT_METADATA 1" >>confdefs.h +$as_echo "#define HAVE_PUT_LINK_COOKIE 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - - - -fi - rm -Rf build - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether clear_inode() is available" >&5 -$as_echo_n "checking whether clear_inode() is available... " >&6; } - + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->put_link() passes nameidata" >&5 +$as_echo_n "checking whether iops->put_link() passes nameidata... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include + void put_link(struct dentry *de, struct + nameidata *nd, void *ptr) { return; } + static struct inode_operations + iops __attribute__ ((unused)) = { + .put_link = put_link, + }; int main (void) { - clear_inode(NULL); ; return 0; @@ -17813,81 +18075,59 @@ _ACEOF ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - rc=0 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_PUT_LINK_NAMEIDATA 1" >>confdefs.h + + else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - rc=1 + + as_fn_error $? "no; please file a bug report" "$LINENO" 5 + fi rm -Rf build - if test $rc -ne 0; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - if test "x$enable_linux_builtin" != xyes; then - grep -q -E '[[:space:]]clear_inode[[:space:]]' \ - $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null - rc=$? - if test $rc -ne 0; then - export=0 - for file in fs/inode.c; do - grep -q -E "EXPORT_SYMBOL.*(clear_inode)" \ - "$LINUX/$file" 2>/dev/null - rc=$? - if test $rc -eq 0; then - export=1 - break; - fi - done - if test $export -eq 0; then : - rc=1 - else : - rc=0 - fi - else : - rc=0 - fi - fi - if test $rc -ne 0; then : +fi + rm -Rf build - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -$as_echo "#define HAVE_CLEAR_INODE 1" >>confdefs.h +fi + rm -Rf build - fi - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether insert_inode_locked() is available" >&5 -$as_echo_n "checking whether insert_inode_locked() is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->truncate_range() exists" >&5 +$as_echo_n "checking whether iops->truncate_range() exists... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c #include + void truncate_range(struct inode *inode, loff_t start, + loff_t end) { return; } + static struct inode_operations iops __attribute__ ((unused)) = { + .truncate_range = truncate_range, + }; int main (void) { - insert_inode_locked(NULL); ; return 0; @@ -17917,81 +18157,114 @@ _ACEOF ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - rc=0 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_INODE_TRUNCATE_RANGE 1" >>confdefs.h + + else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - rc=1 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi rm -Rf build - if test $rc -ne 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - if test "x$enable_linux_builtin" != xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dops->d_automount() exists" >&5 +$as_echo_n "checking whether dops->d_automount() exists... " >&6; } - grep -q -E '[[:space:]]insert_inode_locked[[:space:]]' \ - $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null - rc=$? - if test $rc -ne 0; then - export=0 - for file in fs/inode.c; do - grep -q -E "EXPORT_SYMBOL.*(insert_inode_locked)" \ - "$LINUX/$file" 2>/dev/null - rc=$? - if test $rc -eq 0; then - export=1 - break; - fi - done - if test $export -eq 0; then : - rc=1 - else : - rc=0 - fi - else : - rc=0 - fi - fi - if test $rc -ne 0; then : +cat confdefs.h - <<_ACEOF >conftest.c - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else : + #include + struct vfsmount *d_automount(struct path *p) { return NULL; } + struct dentry_operations dops __attribute__ ((unused)) = { + .d_automount = d_automount, + }; + +int +main (void) +{ + + + ; + return 0; +} + +_ACEOF + + + +cat - <<_ACEOF >conftest.h + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + if { ac_try='cp conftest.c conftest.h build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null && { ac_try='test -s build/conftest.o' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_INSERT_INODE_LOCKED 1" >>confdefs.h +$as_echo "#define HAVE_AUTOMOUNT 1" >>confdefs.h - fi - fi +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether d_make_root() is available" >&5 -$as_echo_n "checking whether d_make_root() is available... " >&6; } +fi + rm -Rf build + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether eops->encode_fh() wants inode" >&5 +$as_echo_n "checking whether eops->encode_fh() wants inode... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.c - #include + #include + int encode_fh(struct inode *inode, __u32 *fh, int *max_len, + struct inode *parent) { return 0; } + static struct export_operations eops __attribute__ ((unused))={ + .encode_fh = encode_fh, + }; int main (void) { - d_make_root(NULL); ; return 0; @@ -18021,81 +18294,110 @@ _ACEOF ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - rc=0 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_ENCODE_FH_WITH_INODE 1" >>confdefs.h + + else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - rc=1 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi rm -Rf build - if test $rc -ne 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else - if test "x$enable_linux_builtin" != xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether eops->commit_metadata() exists" >&5 +$as_echo_n "checking whether eops->commit_metadata() exists... " >&6; } - grep -q -E '[[:space:]]d_make_root[[:space:]]' \ - $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null - rc=$? - if test $rc -ne 0; then - export=0 - for file in fs/dcache.c; do - grep -q -E "EXPORT_SYMBOL.*(d_make_root)" \ - "$LINUX/$file" 2>/dev/null - rc=$? - if test $rc -eq 0; then - export=1 - break; - fi - done - if test $export -eq 0; then : - rc=1 - else : - rc=0 - fi - else : - rc=0 - fi - fi - if test $rc -ne 0; then : +cat confdefs.h - <<_ACEOF >conftest.c - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else : + #include + int commit_metadata(struct inode *inode) { return 0; } + static struct export_operations eops __attribute__ ((unused))={ + .commit_metadata = commit_metadata, + }; + +int +main (void) +{ + + + ; + return 0; +} + +_ACEOF + + + +cat - <<_ACEOF >conftest.h + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + if { ac_try='cp conftest.c conftest.h build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null && { ac_try='test -s build/conftest.o' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_D_MAKE_ROOT 1" >>confdefs.h +$as_echo "#define HAVE_COMMIT_METADATA 1" >>confdefs.h - fi - fi +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether d_obtain_alias() is available" >&5 -$as_echo_n "checking whether d_obtain_alias() is available... " >&6; } + +fi + rm -Rf build + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether clear_inode() is available" >&5 +$as_echo_n "checking whether clear_inode() is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include int main (void) { - d_obtain_alias(NULL); + clear_inode(NULL); ; return 0; @@ -18144,13 +18446,13 @@ $as_echo "no" >&6; } else if test "x$enable_linux_builtin" != xyes; then - grep -q -E '[[:space:]]d_obtain_alias[[:space:]]' \ + grep -q -E '[[:space:]]clear_inode[[:space:]]' \ $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null rc=$? if test $rc -ne 0; then export=0 - for file in fs/dcache.c; do - grep -q -E "EXPORT_SYMBOL.*(d_obtain_alias)" \ + for file in fs/inode.c; do + grep -q -E "EXPORT_SYMBOL.*(clear_inode)" \ "$LINUX/$file" 2>/dev/null rc=$? if test $rc -eq 0; then @@ -18178,29 +18480,28 @@ $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_D_OBTAIN_ALIAS 1" >>confdefs.h +$as_echo "#define HAVE_CLEAR_INODE 1" >>confdefs.h fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether d_prune_aliases() is available" >&5 -$as_echo_n "checking whether d_prune_aliases() is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether insert_inode_locked() is available" >&5 +$as_echo_n "checking whether insert_inode_locked() is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include int main (void) { - struct inode *ip = NULL; - d_prune_aliases(ip); + insert_inode_locked(NULL); ; return 0; @@ -18249,13 +18550,13 @@ $as_echo "no" >&6; } else if test "x$enable_linux_builtin" != xyes; then - grep -q -E '[[:space:]]d_prune_aliases[[:space:]]' \ + grep -q -E '[[:space:]]insert_inode_locked[[:space:]]' \ $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null rc=$? if test $rc -ne 0; then export=0 - for file in fs/dcache.c; do - grep -q -E "EXPORT_SYMBOL.*(d_prune_aliases)" \ + for file in fs/inode.c; do + grep -q -E "EXPORT_SYMBOL.*(insert_inode_locked)" \ "$LINUX/$file" 2>/dev/null rc=$? if test $rc -eq 0; then @@ -18283,15 +18584,15 @@ $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_D_PRUNE_ALIASES 1" >>confdefs.h +$as_echo "#define HAVE_INSERT_INODE_LOCKED 1" >>confdefs.h fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether d_set_d_op() is available" >&5 -$as_echo_n "checking whether d_set_d_op() is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether d_make_root() is available" >&5 +$as_echo_n "checking whether d_make_root() is available... " >&6; } @@ -18304,7 +18605,7 @@ int main (void) { - d_set_d_op(NULL, NULL); + d_make_root(NULL); ; return 0; @@ -18353,13 +18654,13 @@ $as_echo "no" >&6; } else if test "x$enable_linux_builtin" != xyes; then - grep -q -E '[[:space:]]d_set_d_op[[:space:]]' \ + grep -q -E '[[:space:]]d_make_root[[:space:]]' \ $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null rc=$? if test $rc -ne 0; then export=0 for file in fs/dcache.c; do - grep -q -E "EXPORT_SYMBOL.*(d_set_d_op)" \ + grep -q -E "EXPORT_SYMBOL.*(d_make_root)" \ "$LINUX/$file" 2>/dev/null rc=$? if test $rc -eq 0; then @@ -18387,16 +18688,16 @@ $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_D_SET_D_OP 1" >>confdefs.h +$as_echo "#define HAVE_D_MAKE_ROOT 1" >>confdefs.h fi fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether d_obtain_alias() is available" >&5 +$as_echo_n "checking whether d_obtain_alias() is available... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dops->d_revalidate() takes struct nameidata" >&5 -$as_echo_n "checking whether dops->d_revalidate() takes struct nameidata... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -18404,18 +18705,11 @@ cat confdefs.h - <<_ACEOF >conftest.c #include - int revalidate (struct dentry *dentry, - struct nameidata *nidata) { return 0; } - - static const struct dentry_operations - dops __attribute__ ((unused)) = { - .d_revalidate = revalidate, - }; - int main (void) { + d_obtain_alias(NULL); ; return 0; @@ -18445,113 +18739,82 @@ _ACEOF ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_D_REVALIDATE_NAMEIDATA 1" >>confdefs.h - - + rc=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - + rc=1 fi rm -Rf build + if test $rc -ne 0; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dentry uses const struct dentry_operations" >&5 -$as_echo_n "checking whether dentry uses const struct dentry_operations... " >&6; } - + else + if test "x$enable_linux_builtin" != xyes; then -cat confdefs.h - <<_ACEOF >conftest.c - - - #include - - const struct dentry_operations test_d_op = { - .d_revalidate = NULL, - }; - -int -main (void) -{ - - struct dentry d __attribute__ ((unused)); - - d.d_op = &test_d_op; - - ; - return 0; -} - -_ACEOF - - - -cat - <<_ACEOF >conftest.h + grep -q -E '[[:space:]]d_obtain_alias[[:space:]]' \ + $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null + rc=$? + if test $rc -ne 0; then + export=0 + for file in fs/dcache.c; do + grep -q -E "EXPORT_SYMBOL.*(d_obtain_alias)" \ + "$LINUX/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi -_ACEOF + fi + if test $rc -ne 0; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - rm -Rf build && mkdir -p build && touch build/conftest.mod.c - echo "obj-m := conftest.o" >build/Makefile - modpost_flag='' - test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage - if { ac_try='cp conftest.c conftest.h build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 - (eval $ac_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; } >/dev/null && { ac_try='test -s build/conftest.o' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 - (eval $ac_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : + else : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_CONST_DENTRY_OPERATIONS 1" >>confdefs.h - - -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - +$as_echo "#define HAVE_D_OBTAIN_ALIAS 1" >>confdefs.h -fi - rm -Rf build + fi + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether check_disk_size_change() is available" >&5 -$as_echo_n "checking whether check_disk_size_change() is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether d_prune_aliases() is available" >&5 +$as_echo_n "checking whether d_prune_aliases() is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include int main (void) { - check_disk_size_change(NULL, NULL); + struct inode *ip = NULL; + d_prune_aliases(ip); ; return 0; @@ -18600,13 +18863,13 @@ $as_echo "no" >&6; } else if test "x$enable_linux_builtin" != xyes; then - grep -q -E '[[:space:]]check_disk_size_change[[:space:]]' \ + grep -q -E '[[:space:]]d_prune_aliases[[:space:]]' \ $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null rc=$? if test $rc -ne 0; then export=0 - for file in fs/block_dev.c; do - grep -q -E "EXPORT_SYMBOL.*(check_disk_size_change)" \ + for file in fs/dcache.c; do + grep -q -E "EXPORT_SYMBOL.*(d_prune_aliases)" \ "$LINUX/$file" 2>/dev/null rc=$? if test $rc -eq 0; then @@ -18634,28 +18897,28 @@ $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_CHECK_DISK_SIZE_CHANGE 1" >>confdefs.h +$as_echo "#define HAVE_D_PRUNE_ALIASES 1" >>confdefs.h fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether truncate_setsize() is available" >&5 -$as_echo_n "checking whether truncate_setsize() is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether d_set_d_op() is available" >&5 +$as_echo_n "checking whether d_set_d_op() is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include int main (void) { - truncate_setsize(NULL, 0); + d_set_d_op(NULL, NULL); ; return 0; @@ -18704,13 +18967,13 @@ $as_echo "no" >&6; } else if test "x$enable_linux_builtin" != xyes; then - grep -q -E '[[:space:]]truncate_setsize[[:space:]]' \ + grep -q -E '[[:space:]]d_set_d_op[[:space:]]' \ $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null rc=$? if test $rc -ne 0; then export=0 - for file in mm/truncate.c; do - grep -q -E "EXPORT_SYMBOL.*(truncate_setsize)" \ + for file in fs/dcache.c; do + grep -q -E "EXPORT_SYMBOL.*(d_set_d_op)" \ "$LINUX/$file" 2>/dev/null rc=$? if test $rc -eq 0; then @@ -18738,7 +19001,7 @@ $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_TRUNCATE_SETSIZE 1" >>confdefs.h +$as_echo "#define HAVE_D_SET_D_OP 1" >>confdefs.h fi @@ -18746,27 +19009,27 @@ $as_echo "#define HAVE_TRUNCATE_SETSIZE 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether security_inode_init_security wants 6 args" >&5 -$as_echo_n "checking whether security_inode_init_security wants 6 args... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dops->d_revalidate() takes struct nameidata" >&5 +$as_echo_n "checking whether dops->d_revalidate() takes struct nameidata... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include + + int revalidate (struct dentry *dentry, + struct nameidata *nidata) { return 0; } + + static const struct dentry_operations + dops __attribute__ ((unused)) = { + .d_revalidate = revalidate, + }; int main (void) { - struct inode *ip __attribute__ ((unused)) = NULL; - struct inode *dip __attribute__ ((unused)) = NULL; - const struct qstr *str __attribute__ ((unused)) = NULL; - char *name __attribute__ ((unused)) = NULL; - void *value __attribute__ ((unused)) = NULL; - size_t len __attribute__ ((unused)) = 0; - - security_inode_init_security(ip, dip, str, &name, &value, &len); ; return 0; @@ -18800,7 +19063,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_6ARGS_SECURITY_INODE_INIT_SECURITY 1" >>confdefs.h +$as_echo "#define HAVE_D_REVALIDATE_NAMEIDATA 1" >>confdefs.h else @@ -18818,25 +19081,26 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether security_inode_init_security wants callback" >&5 -$as_echo_n "checking whether security_inode_init_security wants callback... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dentry uses const struct dentry_operations" >&5 +$as_echo_n "checking whether dentry uses const struct dentry_operations... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include + + const struct dentry_operations test_d_op = { + .d_revalidate = NULL, + }; int main (void) { - struct inode *ip __attribute__ ((unused)) = NULL; - struct inode *dip __attribute__ ((unused)) = NULL; - const struct qstr *str __attribute__ ((unused)) = NULL; - initxattrs func __attribute__ ((unused)) = NULL; + struct dentry d __attribute__ ((unused)); - security_inode_init_security(ip, dip, str, func, NULL); + d.d_op = &test_d_op; ; return 0; @@ -18870,7 +19134,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_CALLBACK_SECURITY_INODE_INIT_SECURITY 1" >>confdefs.h +$as_echo "#define HAVE_CONST_DENTRY_OPERATIONS 1" >>confdefs.h else @@ -18887,8 +19151,8 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mount_nodev() is available" >&5 -$as_echo_n "checking whether mount_nodev() is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether check_disk_size_change() is available" >&5 +$as_echo_n "checking whether check_disk_size_change() is available... " >&6; } @@ -18901,7 +19165,7 @@ int main (void) { - mount_nodev(NULL, 0, NULL, NULL); + check_disk_size_change(NULL, NULL); ; return 0; @@ -18950,13 +19214,13 @@ $as_echo "no" >&6; } else if test "x$enable_linux_builtin" != xyes; then - grep -q -E '[[:space:]]mount_nodev[[:space:]]' \ + grep -q -E '[[:space:]]check_disk_size_change[[:space:]]' \ $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null rc=$? if test $rc -ne 0; then export=0 - for file in fs/super.c; do - grep -q -E "EXPORT_SYMBOL.*(mount_nodev)" \ + for file in fs/block_dev.c; do + grep -q -E "EXPORT_SYMBOL.*(check_disk_size_change)" \ "$LINUX/$file" 2>/dev/null rc=$? if test $rc -eq 0; then @@ -18984,37 +19248,28 @@ $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_MOUNT_NODEV 1" >>confdefs.h +$as_echo "#define HAVE_CHECK_DISK_SIZE_CHANGE 1" >>confdefs.h fi fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether truncate_setsize() is available" >&5 +$as_echo_n "checking whether truncate_setsize() is available... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether super_block has s_shrink" >&5 -$as_echo_n "checking whether super_block has s_shrink... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include - - int shrink(struct shrinker *s, struct shrink_control *sc) - { return 0; } - - static const struct super_block - sb __attribute__ ((unused)) = { - .s_shrink.shrink = shrink, - .s_shrink.seeks = DEFAULT_SEEKS, - .s_shrink.batch = 0, - }; + #include int main (void) { + truncate_setsize(NULL, 0); ; return 0; @@ -19044,47 +19299,90 @@ _ACEOF ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -$as_echo "#define HAVE_SHRINK 1" >>confdefs.h +fi + rm -Rf build + if test $rc -ne 0; then : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]truncate_setsize[[:space:]]' \ + $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null + rc=$? + if test $rc -ne 0; then + export=0 + for file in mm/truncate.c; do + grep -q -E "EXPORT_SYMBOL.*(truncate_setsize)" \ + "$LINUX/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 0; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + else : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -fi - rm -Rf build +$as_echo "#define HAVE_TRUNCATE_SETSIZE 1" >>confdefs.h + fi + fi + - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether shrink_control has nid" >&5 -$as_echo_n "checking whether shrink_control has nid... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether security_inode_init_security wants 6 args" >&5 +$as_echo_n "checking whether security_inode_init_security wants 6 args... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include int main (void) { - struct shrink_control sc __attribute__ ((unused)); - unsigned long scnidsize __attribute__ ((unused)) = - sizeof(sc.nid); - - ; + struct inode *ip __attribute__ ((unused)) = NULL; + struct inode *dip __attribute__ ((unused)) = NULL; + const struct qstr *str __attribute__ ((unused)) = NULL; + char *name __attribute__ ((unused)) = NULL; + void *value __attribute__ ((unused)) = NULL; + size_t len __attribute__ ((unused)) = 0; + + security_inode_init_security(ip, dip, str, &name, &value, &len); + + ; return 0; } @@ -19116,7 +19414,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define SHRINK_CONTROL_HAS_NID 1" >>confdefs.h +$as_echo "#define HAVE_6ARGS_SECURITY_INODE_INIT_SECURITY 1" >>confdefs.h else @@ -19134,22 +19432,25 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether super_block has s_instances list_head" >&5 -$as_echo_n "checking whether super_block has s_instances list_head... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether security_inode_init_security wants callback" >&5 +$as_echo_n "checking whether security_inode_init_security wants callback... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include int main (void) { - struct super_block sb __attribute__ ((unused)); + struct inode *ip __attribute__ ((unused)) = NULL; + struct inode *dip __attribute__ ((unused)) = NULL; + const struct qstr *str __attribute__ ((unused)) = NULL; + initxattrs func __attribute__ ((unused)) = NULL; - INIT_LIST_HEAD(&sb.s_instances); + security_inode_init_security(ip, dip, str, func, NULL); ; return 0; @@ -19183,7 +19484,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_S_INSTANCES_LIST_HEAD 1" >>confdefs.h +$as_echo "#define HAVE_CALLBACK_SECURITY_INODE_INIT_SECURITY 1" >>confdefs.h else @@ -19200,8 +19501,9 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether super_block has s_d_op" >&5 -$as_echo_n "checking whether super_block has s_d_op... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mount_nodev() is available" >&5 +$as_echo_n "checking whether mount_nodev() is available... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.c @@ -19213,8 +19515,7 @@ int main (void) { - struct super_block sb __attribute__ ((unused)); - sb.s_d_op = NULL; + mount_nodev(NULL, 0, NULL, NULL); ; return 0; @@ -19244,46 +19545,90 @@ _ACEOF ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -$as_echo "#define HAVE_S_D_OP 1" >>confdefs.h +fi + rm -Rf build -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + if test $rc -ne 0; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]mount_nodev[[:space:]]' \ + $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null + rc=$? + if test $rc -ne 0; then + export=0 + for file in fs/super.c; do + grep -q -E "EXPORT_SYMBOL.*(mount_nodev)" \ + "$LINUX/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 0; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + else : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -fi - rm -Rf build +$as_echo "#define HAVE_MOUNT_NODEV 1" >>confdefs.h + fi + fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether bdi_setup_and_register() wants 2 args" >&5 -$as_echo_n "checking whether bdi_setup_and_register() wants 2 args... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether super_block has s_shrink" >&5 +$as_echo_n "checking whether super_block has s_shrink... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include - struct backing_dev_info bdi; + #include + + int shrink(struct shrinker *s, struct shrink_control *sc) + { return 0; } + + static const struct super_block + sb __attribute__ ((unused)) = { + .s_shrink.shrink = shrink, + .s_shrink.seeks = DEFAULT_SEEKS, + .s_shrink.batch = 0, + }; int main (void) { - char *name = "bdi"; - int error __attribute__((unused)) = - bdi_setup_and_register(&bdi, name); ; return 0; @@ -19313,40 +19658,45 @@ _ACEOF ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - rc=0 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_SHRINK 1" >>confdefs.h + + + else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - rc=1 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi rm -Rf build - if test $rc -ne 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether bdi_setup_and_register() wants 3 args" >&5 -$as_echo_n "checking whether bdi_setup_and_register() wants 3 args... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether shrink_control has nid" >&5 +$as_echo_n "checking whether shrink_control has nid... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include - struct backing_dev_info bdi; + #include int main (void) { - char *name = "bdi"; - unsigned int cap = BDI_CAP_MAP_COPY; - int error __attribute__((unused)) = - bdi_setup_and_register(&bdi, name, cap); + struct shrink_control sc __attribute__ ((unused)); + unsigned long scnidsize __attribute__ ((unused)) = + sizeof(sc.nid); ; return 0; @@ -19376,116 +19726,44 @@ _ACEOF ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - rc=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - rc=1 - - -fi - rm -Rf build - - - if test $rc -ne 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - else - if test "x$enable_linux_builtin" != xyes; then +$as_echo "#define SHRINK_CONTROL_HAS_NID 1" >>confdefs.h - grep -q -E '[[:space:]]bdi_setup_and_register[[:space:]]' \ - $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null - rc=$? - if test $rc -ne 0; then - export=0 - for file in mm/backing-dev.c; do - grep -q -E "EXPORT_SYMBOL.*(bdi_setup_and_register)" \ - "$LINUX/$file" 2>/dev/null - rc=$? - if test $rc -eq 0; then - export=1 - break; - fi - done - if test $export -eq 0; then : - rc=1 - else : - rc=0 - fi - else : - rc=0 - fi - fi - if test $rc -ne 0; then : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - else : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_3ARGS_BDI_SETUP_AND_REGISTER 1" >>confdefs.h - - - fi - fi - else - if test "x$enable_linux_builtin" != xyes; then +fi + rm -Rf build - grep -q -E '[[:space:]]bdi_setup_and_register[[:space:]]' \ - $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null - rc=$? - if test $rc -ne 0; then - export=0 - for file in mm/backing-dev.c; do - grep -q -E "EXPORT_SYMBOL.*(bdi_setup_and_register)" \ - "$LINUX/$file" 2>/dev/null - rc=$? - if test $rc -eq 0; then - export=1 - break; - fi - done - if test $export -eq 0; then : - rc=1 - else : - rc=0 - fi - else : - rc=0 - fi - fi - if test $rc -ne 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether bdi_setup_and_register() wants 3 args" >&5 -$as_echo_n "checking whether bdi_setup_and_register() wants 3 args... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether super_block has s_instances list_head" >&5 +$as_echo_n "checking whether super_block has s_instances list_head... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include - struct backing_dev_info bdi; + #include int main (void) { - char *name = "bdi"; - unsigned int cap = BDI_CAP_MAP_COPY; - int error __attribute__((unused)) = - bdi_setup_and_register(&bdi, name, cap); + struct super_block sb __attribute__ ((unused)); + + INIT_LIST_HEAD(&sb.s_instances); ; return 0; @@ -19515,81 +19793,29 @@ _ACEOF ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - rc=0 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_S_INSTANCES_LIST_HEAD 1" >>confdefs.h + + else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - rc=1 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi rm -Rf build - if test $rc -ne 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - else - if test "x$enable_linux_builtin" != xyes; then - - grep -q -E '[[:space:]]bdi_setup_and_register[[:space:]]' \ - $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null - rc=$? - if test $rc -ne 0; then - export=0 - for file in mm/backing-dev.c; do - grep -q -E "EXPORT_SYMBOL.*(bdi_setup_and_register)" \ - "$LINUX/$file" 2>/dev/null - rc=$? - if test $rc -eq 0; then - export=1 - break; - fi - done - if test $export -eq 0; then : - rc=1 - else : - rc=0 - fi - else : - rc=0 - fi - - fi - if test $rc -ne 0; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - else : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_3ARGS_BDI_SETUP_AND_REGISTER 1" >>confdefs.h - - - fi - fi - - - else : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_2ARGS_BDI_SETUP_AND_REGISTER 1" >>confdefs.h - - - fi - fi - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether set_nlink() is available" >&5 -$as_echo_n "checking whether set_nlink() is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether super_block has s_d_op" >&5 +$as_echo_n "checking whether super_block has s_d_op... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -19601,9 +19827,8 @@ int main (void) { - struct inode node; - unsigned int link = 0; - (void) set_nlink(&node, link); + struct super_block sb __attribute__ ((unused)); + sb.s_d_op = NULL; ; return 0; @@ -19637,7 +19862,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_SET_NLINK 1" >>confdefs.h +$as_echo "#define HAVE_S_D_OP 1" >>confdefs.h else @@ -19655,26 +19880,24 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether elevator_change() is available" >&5 -$as_echo_n "checking whether elevator_change() is available... " >&6; } - tmp_flags="$EXTRA_KCFLAGS" - EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether bdi_setup_and_register() wants 2 args" >&5 +$as_echo_n "checking whether bdi_setup_and_register() wants 2 args... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.c - #include - #include + #include + struct backing_dev_info bdi; int main (void) { - int ret; - struct request_queue *q = NULL; - char *elevator = NULL; - ret = elevator_change(q, elevator); + char *name = "bdi"; + int error __attribute__((unused)) = + bdi_setup_and_register(&bdi, name); ; return 0; @@ -19704,47 +19927,40 @@ _ACEOF ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_ELEVATOR_CHANGE 1" >>confdefs.h - - + rc=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - + rc=1 fi rm -Rf build - EXTRA_KCFLAGS="$tmp_flags" + if test $rc -ne 0; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether bdi_setup_and_register() wants 3 args" >&5 +$as_echo_n "checking whether bdi_setup_and_register() wants 3 args... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sget() wants 5 args" >&5 -$as_echo_n "checking whether sget() wants 5 args... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include + struct backing_dev_info bdi; int main (void) { - struct file_system_type *type = NULL; - int (*test)(struct super_block *,void *) = NULL; - int (*set)(struct super_block *,void *) = NULL; - int flags = 0; - void *data = NULL; - (void) sget(type, test, set, flags, data); + char *name = "bdi"; + unsigned int cap = BDI_CAP_MAP_COPY; + int error __attribute__((unused)) = + bdi_setup_and_register(&bdi, name, cap); ; return 0; @@ -19774,47 +19990,116 @@ _ACEOF ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -$as_echo "#define HAVE_5ARG_SGET 1" >>confdefs.h +fi + rm -Rf build -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + if test $rc -ne 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]bdi_setup_and_register[[:space:]]' \ + $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null + rc=$? + if test $rc -ne 0; then + export=0 + for file in mm/backing-dev.c; do + grep -q -E "EXPORT_SYMBOL.*(bdi_setup_and_register)" \ + "$LINUX/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 0; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + else : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -fi - rm -Rf build +$as_echo "#define HAVE_3ARGS_BDI_SETUP_AND_REGISTER 1" >>confdefs.h + fi + fi + - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lseek_execute() is available" >&5 -$as_echo_n "checking whether lseek_execute() is available... " >&6; } + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]bdi_setup_and_register[[:space:]]' \ + $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null + rc=$? + if test $rc -ne 0; then + export=0 + for file in mm/backing-dev.c; do + grep -q -E "EXPORT_SYMBOL.*(bdi_setup_and_register)" \ + "$LINUX/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 0; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether bdi_setup_and_register() wants 3 args" >&5 +$as_echo_n "checking whether bdi_setup_and_register() wants 3 args... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include + struct backing_dev_info bdi; int main (void) { - struct file *fp __attribute__ ((unused)) = NULL; - struct inode *ip __attribute__ ((unused)) = NULL; - loff_t offset __attribute__ ((unused)) = 0; - loff_t maxsize __attribute__ ((unused)) = 0; - - lseek_execute(fp, ip, offset, maxsize); + char *name = "bdi"; + unsigned int cap = BDI_CAP_MAP_COPY; + int error __attribute__((unused)) = + bdi_setup_and_register(&bdi, name, cap); ; return 0; @@ -19857,19 +20142,19 @@ fi if test $rc -ne 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } else if test "x$enable_linux_builtin" != xyes; then - grep -q -E '[[:space:]]lseek_exclusive[[:space:]]' \ + grep -q -E '[[:space:]]bdi_setup_and_register[[:space:]]' \ $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null rc=$? if test $rc -ne 0; then export=0 - for file in fs/read_write.c; do - grep -q -E "EXPORT_SYMBOL.*(lseek_exclusive)" \ + for file in mm/backing-dev.c; do + grep -q -E "EXPORT_SYMBOL.*(bdi_setup_and_register)" \ "$LINUX/$file" 2>/dev/null rc=$? if test $rc -eq 0; then @@ -19889,42 +20174,50 @@ $as_echo "no" >&6; } fi if test $rc -ne 0; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } else : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_LSEEK_EXECUTE 1" >>confdefs.h +$as_echo "#define HAVE_3ARGS_BDI_SETUP_AND_REGISTER 1" >>confdefs.h fi fi + else : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fops->iterate() is available" >&5 -$as_echo_n "checking whether fops->iterate() is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +$as_echo "#define HAVE_2ARGS_BDI_SETUP_AND_REGISTER 1" >>confdefs.h -cat confdefs.h - <<_ACEOF >conftest.c + fi + fi - #include - int iterate(struct file *filp, struct dir_context * context) - { return 0; } - static const struct file_operations fops - __attribute__ ((unused)) = { - .iterate = iterate, - }; + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether set_nlink() is available" >&5 +$as_echo_n "checking whether set_nlink() is available... " >&6; } + + +cat confdefs.h - <<_ACEOF >conftest.c + + + #include int main (void) { + struct inode node; + unsigned int link = 0; + (void) set_nlink(&node, link); ; return 0; @@ -19958,7 +20251,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_VFS_ITERATE 1" >>confdefs.h +$as_echo "#define HAVE_SET_NLINK 1" >>confdefs.h else @@ -19968,26 +20261,34 @@ sed 's/^/| /' conftest.$ac_ext >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fops->readdir() is available" >&5 -$as_echo_n "checking whether fops->readdir() is available... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.c +fi + rm -Rf build - #include - int readdir(struct file *filp, void *entry, filldir_t func) - { return 0; } - static const struct file_operations fops - __attribute__ ((unused)) = { - .readdir = readdir, - }; + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether elevator_change() is available" >&5 +$as_echo_n "checking whether elevator_change() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}" + + +cat confdefs.h - <<_ACEOF >conftest.c + + + #include + #include int main (void) { + int ret; + struct request_queue *q = NULL; + char *elevator = NULL; + ret = elevator_change(q, elevator); ; return 0; @@ -20018,25 +20319,18 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_VFS_READDIR 1" >>confdefs.h +$as_echo "#define HAVE_ELEVATOR_CHANGE 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - as_fn_error $? "no; file a bug report with ZFSOnLinux" "$LINENO" 5 - - - -fi - rm -Rf build - - - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } @@ -20044,9 +20338,10 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fops->read/write_iter() are available" >&5 -$as_echo_n "checking whether fops->read/write_iter() are available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sget() wants 5 args" >&5 +$as_echo_n "checking whether sget() wants 5 args... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -20054,21 +20349,16 @@ cat confdefs.h - <<_ACEOF >conftest.c #include - ssize_t test_read(struct kiocb *kiocb, struct iov_iter *to) - { return 0; } - ssize_t test_write(struct kiocb *kiocb, struct iov_iter *from) - { return 0; } - - static const struct file_operations - fops __attribute__ ((unused)) = { - .read_iter = test_read, - .write_iter = test_write, - }; - int main (void) { + struct file_system_type *type = NULL; + int (*test)(struct super_block *,void *) = NULL; + int (*set)(struct super_block *,void *) = NULL; + int flags = 0; + void *data = NULL; + (void) sget(type, test, set, flags, data); ; return 0; @@ -20102,7 +20392,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_VFS_RW_ITERATE 1" >>confdefs.h +$as_echo "#define HAVE_5ARG_SGET 1" >>confdefs.h else @@ -20119,22 +20409,26 @@ fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lseek_execute() is available" >&5 +$as_echo_n "checking whether lseek_execute() is available... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether kmap_atomic wants 1 args" >&5 -$as_echo_n "checking whether kmap_atomic wants 1 args... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include int main (void) { - struct page page; - kmap_atomic(&page); + struct file *fp __attribute__ ((unused)) = NULL; + struct inode *ip __attribute__ ((unused)) = NULL; + loff_t offset __attribute__ ((unused)) = 0; + loff_t maxsize __attribute__ ((unused)) = 0; + + lseek_execute(fp, ip, offset, maxsize); ; return 0; @@ -20164,43 +20458,87 @@ _ACEOF ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -$as_echo "#define HAVE_1ARG_KMAP_ATOMIC 1" >>confdefs.h +fi + rm -Rf build -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + if test $rc -ne 0; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]lseek_exclusive[[:space:]]' \ + $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null + rc=$? + if test $rc -ne 0; then + export=0 + for file in fs/read_write.c; do + grep -q -E "EXPORT_SYMBOL.*(lseek_exclusive)" \ + "$LINUX/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 0; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + else : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -fi - rm -Rf build +$as_echo "#define HAVE_LSEEK_EXECUTE 1" >>confdefs.h + fi + fi + - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether follow_down_one() is available" >&5 -$as_echo_n "checking whether follow_down_one() is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fops->iterate() is available" >&5 +$as_echo_n "checking whether fops->iterate() is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include + int iterate(struct file *filp, struct dir_context * context) + { return 0; } + + static const struct file_operations fops + __attribute__ ((unused)) = { + .iterate = iterate, + }; int main (void) { - struct path *p = NULL; - follow_down_one(p); ; return 0; @@ -20234,7 +20572,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_FOLLOW_DOWN_ONE 1" >>confdefs.h +$as_echo "#define HAVE_VFS_ITERATE 1" >>confdefs.h else @@ -20244,33 +20582,26 @@ sed 's/^/| /' conftest.$ac_ext >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - - -fi - rm -Rf build - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether make_request_fn() returns int" >&5 -$as_echo_n "checking whether make_request_fn() returns int... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fops->readdir() is available" >&5 +$as_echo_n "checking whether fops->readdir() is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include + int readdir(struct file *filp, void *entry, filldir_t func) + { return 0; } - int make_request(struct request_queue *q, struct bio *bio) - { - return (0); - } + static const struct file_operations fops + __attribute__ ((unused)) = { + .readdir = readdir, + }; int main (void) { - blk_queue_make_request(NULL, &make_request); ; return 0; @@ -20301,40 +20632,57 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define MAKE_REQUEST_FN_RET int" >>confdefs.h - - -$as_echo "#define HAVE_MAKE_REQUEST_FN_RET_INT 1" >>confdefs.h +$as_echo "#define HAVE_VFS_READDIR 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether make_request_fn() returns void" >&5 -$as_echo_n "checking whether make_request_fn() returns void... " >&6; } + as_fn_error $? "no; file a bug report with ZFSOnLinux" "$LINENO" 5 + + + +fi + rm -Rf build + + + + + + +fi + rm -Rf build + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fops->read/write_iter() are available" >&5 +$as_echo_n "checking whether fops->read/write_iter() are available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include - void make_request(struct request_queue *q, struct bio *bio) - { - return; - } + ssize_t test_read(struct kiocb *kiocb, struct iov_iter *to) + { return 0; } + ssize_t test_write(struct kiocb *kiocb, struct iov_iter *from) + { return 0; } + + static const struct file_operations + fops __attribute__ ((unused)) = { + .read_iter = test_read, + .write_iter = test_write, + }; int main (void) { - blk_queue_make_request(NULL, &make_request); ; return 0; @@ -20365,37 +20713,42 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define MAKE_REQUEST_FN_RET void" >>confdefs.h +$as_echo "#define HAVE_VFS_RW_ITERATE 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether make_request_fn() returns blk_qc_t" >&5 -$as_echo_n "checking whether make_request_fn() returns blk_qc_t... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.c +fi + rm -Rf build - #include - blk_qc_t make_request(struct request_queue *q, struct bio *bio) - { - return (BLK_QC_T_NONE); - } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether kmap_atomic wants 1 args" >&5 +$as_echo_n "checking whether kmap_atomic wants 1 args... " >&6; } + + +cat confdefs.h - <<_ACEOF >conftest.c + + + #include int main (void) { - blk_queue_make_request(NULL, &make_request); + struct page page; + kmap_atomic(&page); ; return 0; @@ -20426,35 +20779,18 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define MAKE_REQUEST_FN_RET blk_qc_t" >>confdefs.h - - -$as_echo "#define HAVE_MAKE_REQUEST_FN_RET_QC 1" >>confdefs.h +$as_echo "#define HAVE_1ARG_KMAP_ATOMIC 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - as_fn_error $? "no - Please file a bug report at - https://github.com/zfsonlinux/zfs/issues/new" "$LINENO" 5 - - - -fi - rm -Rf build - - - - - -fi - rm -Rf build - - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } @@ -20464,27 +20800,21 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether generic IO accounting symbols are avaliable" >&5 -$as_echo_n "checking whether generic IO accounting symbols are avaliable... " >&6; } - + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether follow_down_one() is available" >&5 +$as_echo_n "checking whether follow_down_one() is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include - - void (*generic_start_io_acct_f)(int, unsigned long, - struct hd_struct *) = &generic_start_io_acct; - void (*generic_end_io_acct_f)(int, struct hd_struct *, - unsigned long) = &generic_end_io_acct; + #include int main (void) { - generic_start_io_acct(0, 0, NULL); - generic_end_io_acct(0, NULL, 0); + struct path *p = NULL; + follow_down_one(p); ; return 0; @@ -20514,652 +20844,1560 @@ _ACEOF ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - rc=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - rc=1 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -fi - rm -Rf build +$as_echo "#define HAVE_FOLLOW_DOWN_ONE 1" >>confdefs.h - if test $rc -ne 0; then : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - else - if test "x$enable_linux_builtin" != xyes; then - grep -q -E '[[:space:]]generic_start_io_acct[[:space:]]' \ - $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null - rc=$? - if test $rc -ne 0; then - export=0 - for file in block/bio.c; do - grep -q -E "EXPORT_SYMBOL.*(generic_start_io_acct)" \ - "$LINUX/$file" 2>/dev/null - rc=$? - if test $rc -eq 0; then - export=1 - break; - fi - done - if test $export -eq 0; then : - rc=1 - else : - rc=0 - fi - else : - rc=0 - fi - fi - if test $rc -ne 0; then : +fi + rm -Rf build - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - else : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -$as_echo "#define HAVE_GENERIC_IO_ACCT 1" >>confdefs.h + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether make_request_fn() returns int" >&5 +$as_echo_n "checking whether make_request_fn() returns int... " >&6; } - fi - fi +cat confdefs.h - <<_ACEOF >conftest.c + #include - if test "$LINUX_OBJ" != "$LINUX"; then : + int make_request(struct request_queue *q, struct bio *bio) + { + return (0); + } - KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ" +int +main (void) +{ -fi + blk_queue_make_request(NULL, &make_request); + ; + return 0; +} +_ACEOF - KERNELCPPFLAGS="$KERNELCPPFLAGS $NO_UNUSED_BUT_SET_VARIABLE" - KERNELCPPFLAGS="$KERNELCPPFLAGS $NO_BOOL_COMPARE" - KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL" - KERNELCPPFLAGS="$KERNELCPPFLAGS -DTEXT_DOMAIN=\\\"zfs-linux-kernel\\\"" - ;; - user) +cat - <<_ACEOF >conftest.h +_ACEOF -# Check whether --with-mounthelperdir was given. -if test "${with_mounthelperdir+set}" = set; then : - withval=$with_mounthelperdir; mounthelperdir=$withval -else - mounthelperdir=/sbin -fi + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + if { ac_try='cp conftest.c conftest.h build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null && { ac_try='test -s build/conftest.o' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +$as_echo "#define MAKE_REQUEST_FN_RET int" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for udev directories" >&5 -$as_echo_n "checking for udev directories... " >&6; } +$as_echo "#define HAVE_MAKE_REQUEST_FN_RET_INT 1" >>confdefs.h + -# Check whether --with-udevdir was given. -if test "${with_udevdir+set}" = set; then : - withval=$with_udevdir; udevdir=$withval else - udevdir=check -fi + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether make_request_fn() returns void" >&5 +$as_echo_n "checking whether make_request_fn() returns void... " >&6; } - if test "x$udevdir" = xcheck; then : - path1=/lib/udev - path2=/usr/lib/udev - default=$path2 +cat confdefs.h - <<_ACEOF >conftest.c - if test -d "$path1"; then : - udevdir="$path1" -else - if test -d "$path2"; then : - udevdir="$path2" -else - udevdir="$default" -fi + #include -fi + void make_request(struct request_queue *q, struct bio *bio) + { + return; + } -fi +int +main (void) +{ + blk_queue_make_request(NULL, &make_request); -# Check whether --with-udevruledir was given. -if test "${with_udevruledir+set}" = set; then : - withval=$with_udevruledir; udevruledir=$withval -else - udevruledir="${udevdir}/rules.d" -fi + ; + return 0; +} +_ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $udevdir;$udevruledir" >&5 -$as_echo "$udevdir;$udevruledir" >&6; } +cat - <<_ACEOF >conftest.h +_ACEOF - # Check whether --enable-systemd was given. -if test "${enable_systemd+set}" = set; then : - enableval=$enable_systemd; -else - enable_systemd=yes -fi + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + if { ac_try='cp conftest.c conftest.h build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null && { ac_try='test -s build/conftest.o' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define MAKE_REQUEST_FN_RET void" >>confdefs.h -# Check whether --with-systemdunitdir was given. -if test "${with_systemdunitdir+set}" = set; then : - withval=$with_systemdunitdir; systemdunitdir=$withval else - systemdunitdir=/usr/lib/systemd/system -fi + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether make_request_fn() returns blk_qc_t" >&5 +$as_echo_n "checking whether make_request_fn() returns blk_qc_t... " >&6; } -# Check whether --with-systemdpresetdir was given. -if test "${with_systemdpresetdir+set}" = set; then : - withval=$with_systemdpresetdir; systemdpresetdir=$withval -else - systemdpresetdir=/usr/lib/systemd/system-preset -fi +cat confdefs.h - <<_ACEOF >conftest.c + #include -# Check whether --with-systemdmodulesloaddir was given. -if test "${with_systemdmodulesloaddir+set}" = set; then : - withval=$with_systemdmodulesloaddir; systemdmoduleloaddir=$withval -else - systemdmodulesloaddir=/usr/lib/modules-load.d -fi + blk_qc_t make_request(struct request_queue *q, struct bio *bio) + { + return (BLK_QC_T_NONE); + } +int +main (void) +{ + blk_queue_make_request(NULL, &make_request); - if test "x$enable_systemd" = xyes; then : + ; + return 0; +} - ZFS_INIT_SYSTEMD=systemd - ZFS_MODULE_LOAD=modules-load.d - modulesloaddir=$systemdmodulesloaddir +_ACEOF -fi +cat - <<_ACEOF >conftest.h +_ACEOF + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + if { ac_try='cp conftest.c conftest.h build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null && { ac_try='test -s build/conftest.o' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +$as_echo "#define MAKE_REQUEST_FN_RET blk_qc_t" >>confdefs.h - # Check whether --enable-sysvinit was given. -if test "${enable_sysvinit+set}" = set; then : - enableval=$enable_sysvinit; -else - enable_sysvinit=yes -fi +$as_echo "#define HAVE_MAKE_REQUEST_FN_RET_QC 1" >>confdefs.h - if test "x$enable_sysvinit" = xyes; then : - ZFS_INIT_SYSV=init.d -fi +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + as_fn_error $? "no - Please file a bug report at + https://github.com/zfsonlinux/zfs/issues/new" "$LINENO" 5 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dracut directory" >&5 -$as_echo_n "checking for dracut directory... " >&6; } -# Check whether --with-dracutdir was given. -if test "${with_dracutdir+set}" = set; then : - withval=$with_dracutdir; dracutdir=$withval -else - dracutdir=check fi + rm -Rf build - if test "x$dracutdir" = xcheck; then : - - path1=/usr/share/dracut - path2=/usr/lib/dracut - default=$path2 - if test -d "$path1"; then : - dracutdir="$path1" -else - if test -d "$path2"; then : - dracutdir="$path2" -else - dracutdir="$default" -fi fi + rm -Rf build -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dracutdir" >&5 -$as_echo "$dracutdir" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for target asm dir" >&5 -$as_echo_n "checking for target asm dir... " >&6; } - TARGET_ARCH=`echo ${target_cpu} | sed -e s/i.86/i386/` +fi + rm -Rf build - case $TARGET_ARCH in - i386|x86_64) - TARGET_ASM_DIR=asm-${TARGET_ARCH} - ;; - *) - TARGET_ASM_DIR=asm-generic - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TARGET_ASM_DIR" >&5 -$as_echo "$TARGET_ASM_DIR" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether generic IO accounting symbols are avaliable" >&5 +$as_echo_n "checking whether generic IO accounting symbols are avaliable... " >&6; } - ZLIB= - ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" -if test "x$ac_cv_header_zlib_h" = xyes; then : -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? " - *** zlib.h missing, zlib-devel package required -See \`config.log' for more details" "$LINENO" 5; } -fi +cat confdefs.h - <<_ACEOF >conftest.c + #include - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compress2 in -lz" >&5 -$as_echo_n "checking for compress2 in -lz... " >&6; } -if ${ac_cv_lib_z_compress2+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lz $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + void (*generic_start_io_acct_f)(int, unsigned long, + struct hd_struct *) = &generic_start_io_acct; + void (*generic_end_io_acct_f)(int, struct hd_struct *, + unsigned long) = &generic_end_io_acct; -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char compress2 (); int -main () +main (void) { -return compress2 (); + + generic_start_io_acct(0, 0, NULL); + generic_end_io_acct(0, NULL, 0); + ; return 0; } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_z_compress2=yes -else - ac_cv_lib_z_compress2=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress2" >&5 -$as_echo "$ac_cv_lib_z_compress2" >&6; } -if test "x$ac_cv_lib_z_compress2" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBZ 1 -_ACEOF - LIBS="-lz $LIBS" +_ACEOF -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? " - *** compress2() missing, zlib-devel package required -See \`config.log' for more details" "$LINENO" 5; } -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uncompress in -lz" >&5 -$as_echo_n "checking for uncompress in -lz... " >&6; } -if ${ac_cv_lib_z_uncompress+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lz $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +cat - <<_ACEOF >conftest.h -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char uncompress (); -int -main () -{ -return uncompress (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_z_uncompress=yes -else - ac_cv_lib_z_uncompress=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_uncompress" >&5 -$as_echo "$ac_cv_lib_z_uncompress" >&6; } -if test "x$ac_cv_lib_z_uncompress" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBZ 1 _ACEOF - LIBS="-lz $LIBS" + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + if { ac_try='cp conftest.c conftest.h build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null && { ac_try='test -s build/conftest.o' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + rc=0 else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? " - *** uncompress() missing, zlib-devel package required -See \`config.log' for more details" "$LINENO" 5; } + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 + + fi + rm -Rf build - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for crc32 in -lz" >&5 -$as_echo_n "checking for crc32 in -lz... " >&6; } -if ${ac_cv_lib_z_crc32+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lz $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + if test $rc -ne 0; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]generic_start_io_acct[[:space:]]' \ + $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null + rc=$? + if test $rc -ne 0; then + export=0 + for file in block/bio.c; do + grep -q -E "EXPORT_SYMBOL.*(generic_start_io_acct)" \ + "$LINUX/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 0; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + else : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_GENERIC_IO_ACCT 1" >>confdefs.h + + + fi + fi + + + + if test "$LINUX_OBJ" != "$LINUX"; then : + + KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ" -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char crc32 (); -int -main () -{ -return crc32 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_z_crc32=yes -else - ac_cv_lib_z_crc32=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + + + + KERNELCPPFLAGS="$KERNELCPPFLAGS $NO_UNUSED_BUT_SET_VARIABLE" + KERNELCPPFLAGS="$KERNELCPPFLAGS $NO_BOOL_COMPARE" + KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL" + KERNELCPPFLAGS="$KERNELCPPFLAGS -DTEXT_DOMAIN=\\\"zfs-linux-kernel\\\"" + + + ;; + user) + + +# Check whether --with-mounthelperdir was given. +if test "${with_mounthelperdir+set}" = set; then : + withval=$with_mounthelperdir; mounthelperdir=$withval +else + mounthelperdir=/sbin fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_crc32" >&5 -$as_echo "$ac_cv_lib_z_crc32" >&6; } -if test "x$ac_cv_lib_z_crc32" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBZ 1 -_ACEOF - LIBS="-lz $LIBS" + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for udev directories" >&5 +$as_echo_n "checking for udev directories... " >&6; } + +# Check whether --with-udevdir was given. +if test "${with_udevdir+set}" = set; then : + withval=$with_udevdir; udevdir=$withval else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? " - *** crc32() missing, zlib-devel package required -See \`config.log' for more details" "$LINENO" 5; } + udevdir=check fi - ZLIB="-lz" + if test "x$udevdir" = xcheck; then : + path1=/lib/udev + path2=/usr/lib/udev + default=$path2 -$as_echo "#define HAVE_ZLIB 1" >>confdefs.h + if test -d "$path1"; then : + udevdir="$path1" +else + if test -d "$path2"; then : + udevdir="$path2" +else + udevdir="$default" +fi +fi - LIBUUID= +fi - ac_fn_c_check_header_mongrel "$LINENO" "uuid/uuid.h" "ac_cv_header_uuid_uuid_h" "$ac_includes_default" -if test "x$ac_cv_header_uuid_uuid_h" = xyes; then : +# Check whether --with-udevruledir was given. +if test "${with_udevruledir+set}" = set; then : + withval=$with_udevruledir; udevruledir=$withval else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? " - *** uuid/uuid.h missing, libuuid-devel package required -See \`config.log' for more details" "$LINENO" 5; } + udevruledir="${udevdir}/rules.d" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate in -luuid" >&5 -$as_echo_n "checking for uuid_generate in -luuid... " >&6; } -if ${ac_cv_lib_uuid_uuid_generate+:} false; then : - $as_echo_n "(cached) " >&6 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $udevdir;$udevruledir" >&5 +$as_echo "$udevdir;$udevruledir" >&6; } + + + # Check whether --enable-systemd was given. +if test "${enable_systemd+set}" = set; then : + enableval=$enable_systemd; else - ac_check_lib_save_LIBS=$LIBS -LIBS="-luuid $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + enable_systemd=yes +fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char uuid_generate (); -int -main () -{ -return uuid_generate (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_uuid_uuid_generate=yes + + +# Check whether --with-systemdunitdir was given. +if test "${with_systemdunitdir+set}" = set; then : + withval=$with_systemdunitdir; systemdunitdir=$withval else - ac_cv_lib_uuid_uuid_generate=no + systemdunitdir=/usr/lib/systemd/system fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + + + +# Check whether --with-systemdpresetdir was given. +if test "${with_systemdpresetdir+set}" = set; then : + withval=$with_systemdpresetdir; systemdpresetdir=$withval +else + systemdpresetdir=/usr/lib/systemd/system-preset fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_generate" >&5 -$as_echo "$ac_cv_lib_uuid_uuid_generate" >&6; } -if test "x$ac_cv_lib_uuid_uuid_generate" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBUUID 1 -_ACEOF - LIBS="-luuid $LIBS" + +# Check whether --with-systemdmodulesloaddir was given. +if test "${with_systemdmodulesloaddir+set}" = set; then : + withval=$with_systemdmodulesloaddir; systemdmoduleloaddir=$withval else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? " - *** uuid_generate() missing, libuuid-devel package required -See \`config.log' for more details" "$LINENO" 5; } + systemdmodulesloaddir=/usr/lib/modules-load.d fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_is_null in -luuid" >&5 -$as_echo_n "checking for uuid_is_null in -luuid... " >&6; } -if ${ac_cv_lib_uuid_uuid_is_null+:} false; then : - $as_echo_n "(cached) " >&6 + + if test "x$enable_systemd" = xyes; then : + + ZFS_INIT_SYSTEMD=systemd + ZFS_MODULE_LOAD=modules-load.d + modulesloaddir=$systemdmodulesloaddir + +fi + + + + + + + + + # Check whether --enable-sysvinit was given. +if test "${enable_sysvinit+set}" = set; then : + enableval=$enable_sysvinit; else - ac_check_lib_save_LIBS=$LIBS -LIBS="-luuid $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + enable_sysvinit=yes +fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char uuid_is_null (); -int -main () -{ -return uuid_is_null (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_uuid_uuid_is_null=yes + + if test "x$enable_sysvinit" = xyes; then : + ZFS_INIT_SYSV=init.d +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dracut directory" >&5 +$as_echo_n "checking for dracut directory... " >&6; } + +# Check whether --with-dracutdir was given. +if test "${with_dracutdir+set}" = set; then : + withval=$with_dracutdir; dracutdir=$withval +else + dracutdir=check +fi + + + if test "x$dracutdir" = xcheck; then : + + path1=/usr/share/dracut + path2=/usr/lib/dracut + default=$path2 + + if test -d "$path1"; then : + dracutdir="$path1" +else + + if test -d "$path2"; then : + dracutdir="$path2" +else + dracutdir="$default" +fi + +fi + +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dracutdir" >&5 +$as_echo "$dracutdir" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for target asm dir" >&5 +$as_echo_n "checking for target asm dir... " >&6; } + TARGET_ARCH=`echo ${target_cpu} | sed -e s/i.86/i386/` + + case $TARGET_ARCH in + i386|x86_64) + TARGET_ASM_DIR=asm-${TARGET_ARCH} + ;; + *) + TARGET_ASM_DIR=asm-generic + ;; + esac + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TARGET_ASM_DIR" >&5 +$as_echo "$TARGET_ASM_DIR" >&6; } + + + ZLIB= + + ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" +if test "x$ac_cv_header_zlib_h" = xyes; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? " + *** zlib.h missing, zlib-devel package required +See \`config.log' for more details" "$LINENO" 5; } +fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compress2 in -lz" >&5 +$as_echo_n "checking for compress2 in -lz... " >&6; } +if ${ac_cv_lib_z_compress2+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lz $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char compress2 (); +int +main () +{ +return compress2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_z_compress2=yes +else + ac_cv_lib_z_compress2=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress2" >&5 +$as_echo "$ac_cv_lib_z_compress2" >&6; } +if test "x$ac_cv_lib_z_compress2" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBZ 1 +_ACEOF + + LIBS="-lz $LIBS" + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? " + *** compress2() missing, zlib-devel package required +See \`config.log' for more details" "$LINENO" 5; } +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uncompress in -lz" >&5 +$as_echo_n "checking for uncompress in -lz... " >&6; } +if ${ac_cv_lib_z_uncompress+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lz $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char uncompress (); +int +main () +{ +return uncompress (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_z_uncompress=yes +else + ac_cv_lib_z_uncompress=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_uncompress" >&5 +$as_echo "$ac_cv_lib_z_uncompress" >&6; } +if test "x$ac_cv_lib_z_uncompress" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBZ 1 +_ACEOF + + LIBS="-lz $LIBS" + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? " + *** uncompress() missing, zlib-devel package required +See \`config.log' for more details" "$LINENO" 5; } +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for crc32 in -lz" >&5 +$as_echo_n "checking for crc32 in -lz... " >&6; } +if ${ac_cv_lib_z_crc32+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lz $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char crc32 (); +int +main () +{ +return crc32 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_z_crc32=yes +else + ac_cv_lib_z_crc32=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_crc32" >&5 +$as_echo "$ac_cv_lib_z_crc32" >&6; } +if test "x$ac_cv_lib_z_crc32" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBZ 1 +_ACEOF + + LIBS="-lz $LIBS" + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? " + *** crc32() missing, zlib-devel package required +See \`config.log' for more details" "$LINENO" 5; } +fi + + + ZLIB="-lz" + + +$as_echo "#define HAVE_ZLIB 1" >>confdefs.h + + + + LIBUUID= + + ac_fn_c_check_header_mongrel "$LINENO" "uuid/uuid.h" "ac_cv_header_uuid_uuid_h" "$ac_includes_default" +if test "x$ac_cv_header_uuid_uuid_h" = xyes; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? " + *** uuid/uuid.h missing, libuuid-devel package required +See \`config.log' for more details" "$LINENO" 5; } +fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate in -luuid" >&5 +$as_echo_n "checking for uuid_generate in -luuid... " >&6; } +if ${ac_cv_lib_uuid_uuid_generate+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-luuid $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char uuid_generate (); +int +main () +{ +return uuid_generate (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_uuid_uuid_generate=yes +else + ac_cv_lib_uuid_uuid_generate=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_generate" >&5 +$as_echo "$ac_cv_lib_uuid_uuid_generate" >&6; } +if test "x$ac_cv_lib_uuid_uuid_generate" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBUUID 1 +_ACEOF + + LIBS="-luuid $LIBS" + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? " + *** uuid_generate() missing, libuuid-devel package required +See \`config.log' for more details" "$LINENO" 5; } +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_is_null in -luuid" >&5 +$as_echo_n "checking for uuid_is_null in -luuid... " >&6; } +if ${ac_cv_lib_uuid_uuid_is_null+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-luuid $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char uuid_is_null (); +int +main () +{ +return uuid_is_null (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_uuid_uuid_is_null=yes else ac_cv_lib_uuid_uuid_is_null=no fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_is_null" >&5 +$as_echo "$ac_cv_lib_uuid_uuid_is_null" >&6; } +if test "x$ac_cv_lib_uuid_uuid_is_null" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBUUID 1 +_ACEOF + + LIBS="-luuid $LIBS" + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? " + *** uuid_is_null() missing, libuuid-devel package required +See \`config.log' for more details" "$LINENO" 5; } +fi + + + LIBUUID="-luuid" + + +$as_echo "#define HAVE_LIBUUID 1" >>confdefs.h + + + + +# Check whether --with-blkid was given. +if test "${with_blkid+set}" = set; then : + withval=$with_blkid; +else + with_blkid=check +fi + + + LIBBLKID= + if test "x$with_blkid" = xyes; then : + + LIBBLKID="-lblkid" + + +$as_echo "#define HAVE_LIBBLKID 1" >>confdefs.h + + +fi + + if test "x$with_blkid" = xcheck; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for blkid_get_cache in -lblkid" >&5 +$as_echo_n "checking for blkid_get_cache in -lblkid... " >&6; } +if ${ac_cv_lib_blkid_blkid_get_cache+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lblkid $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char blkid_get_cache (); +int +main () +{ +return blkid_get_cache (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_blkid_blkid_get_cache=yes +else + ac_cv_lib_blkid_blkid_get_cache=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_blkid_blkid_get_cache" >&5 +$as_echo "$ac_cv_lib_blkid_blkid_get_cache" >&6; } +if test "x$ac_cv_lib_blkid_blkid_get_cache" = xyes; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for blkid zfs support" >&5 +$as_echo_n "checking for blkid zfs support... " >&6; } + + ZFS_DEV=`mktemp` + truncate -s 64M $ZFS_DEV + echo -en "\x0c\xb1\xba\0\0\0\0\0" | \ + dd of=$ZFS_DEV bs=1k count=8 \ + seek=128 conv=notrunc &>/dev/null \ + >/dev/null 2>/dev/null + echo -en "\x0c\xb1\xba\0\0\0\0\0" | \ + dd of=$ZFS_DEV bs=1k count=8 \ + seek=132 conv=notrunc &>/dev/null \ + >/dev/null 2>/dev/null + echo -en "\x0c\xb1\xba\0\0\0\0\0" | \ + dd of=$ZFS_DEV bs=1k count=8 \ + seek=136 conv=notrunc &>/dev/null \ + >/dev/null 2>/dev/null + echo -en "\x0c\xb1\xba\0\0\0\0\0" | \ + dd of=$ZFS_DEV bs=1k count=8 \ + seek=140 conv=notrunc &>/dev/null \ + >/dev/null 2>/dev/null + + saved_LIBS="$LIBS" + LIBS="-lblkid" + + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + #include + +int +main () +{ + + blkid_cache cache; + char *value; + + if (blkid_get_cache(&cache, NULL) < 0) + return 1; + + value = blkid_get_tag_value(cache, "TYPE", + "$ZFS_DEV"); + if (!value) { + blkid_put_cache(cache); + return 2; + } + + if (strcmp(value, "zfs_member")) { + free(value); + blkid_put_cache(cache); + return 0; + } + + free(value); + blkid_put_cache(cache); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + + rm -f $ZFS_DEV + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + LIBBLKID="-lblkid" + + +$as_echo "#define HAVE_LIBBLKID 1" >>confdefs.h + + +else + + rm -f $ZFS_DEV + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + if test "x$with_blkid" != xcheck; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "--with-blkid given but unavailable +See \`config.log' for more details" "$LINENO" 5; } +fi + +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + + LIBS="$saved_LIBS" + +else + + if test "x$with_blkid" != xcheck; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "--with-blkid given but unavailable +See \`config.log' for more details" "$LINENO" 5; } +fi + + +fi + + +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wframe-larger-than= support" >&5 +$as_echo_n "checking for -Wframe-larger-than= support... " >&6; } + + saved_flags="$CFLAGS" + CFLAGS="$CFLAGS -Wframe-larger-than=1024" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + FRAME_LARGER_THAN=-Wframe-larger-than=1024 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +else + + FRAME_LARGER_THAN= + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + CFLAGS="$saved_flags" + + + + if test "x$runstatedir" = x; then + runstatedir='${localstatedir}/run' + + fi + + for ac_func in mlockall +do : + ac_fn_c_check_func "$LINENO" "mlockall" "ac_cv_func_mlockall" +if test "x$ac_cv_func_mlockall" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MLOCKALL 1 +_ACEOF + +fi +done + + ;; + all) + + +# Check whether --with-linux was given. +if test "${with_linux+set}" = set; then : + withval=$with_linux; kernelsrc="$withval" +fi + + + +# Check whether --with-linux-obj was given. +if test "${with_linux_obj+set}" = set; then : + withval=$with_linux_obj; kernelbuild="$withval" +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking kernel source directory" >&5 +$as_echo_n "checking kernel source directory... " >&6; } + if test -z "$kernelsrc"; then : + + if test -e "/lib/modules/$(uname -r)/source"; then : + + headersdir="/lib/modules/$(uname -r)/source" + sourcelink=$(readlink -f "$headersdir") + +elif test -e "/lib/modules/$(uname -r)/build"; then : + + headersdir="/lib/modules/$(uname -r)/build" + sourcelink=$(readlink -f "$headersdir") + +else + + sourcelink=$(ls -1d /usr/src/kernels/* \ + /usr/src/linux-* \ + 2>/dev/null | grep -v obj | tail -1) + +fi + + if test -n "$sourcelink" && test -e ${sourcelink}; then : + + kernelsrc=`readlink -f ${sourcelink}` + +else + + kernelsrc="Not found" + +fi + +else + + if test "$kernelsrc" = "NONE"; then : + + kernsrcver=NONE + +fi + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $kernelsrc" >&5 +$as_echo "$kernelsrc" >&6; } + if test ! -d "$kernelsrc"; then : + + as_fn_error $? " + *** Please make sure the kernel devel package for your distribution + *** is installed and then try again. If that fails, you can specify the + *** location of the kernel source with the '--with-linux=PATH' option." "$LINENO" 5 + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking kernel build directory" >&5 +$as_echo_n "checking kernel build directory... " >&6; } + if test -z "$kernelbuild"; then : + + if test -e "/lib/modules/$(uname -r)/build"; then : + + kernelbuild=`readlink -f /lib/modules/$(uname -r)/build` + +elif test -d ${kernelsrc}-obj/${target_cpu}/${target_cpu}; then : + + kernelbuild=${kernelsrc}-obj/${target_cpu}/${target_cpu} + +elif test -d ${kernelsrc}-obj/${target_cpu}/default; then : + + kernelbuild=${kernelsrc}-obj/${target_cpu}/default + +elif test -d `dirname ${kernelsrc}`/build-${target_cpu}; then : + + kernelbuild=`dirname ${kernelsrc}`/build-${target_cpu} + +else + + kernelbuild=${kernelsrc} + +fi + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $kernelbuild" >&5 +$as_echo "$kernelbuild" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking kernel source version" >&5 +$as_echo_n "checking kernel source version... " >&6; } + utsrelease1=$kernelbuild/include/linux/version.h + utsrelease2=$kernelbuild/include/linux/utsrelease.h + utsrelease3=$kernelbuild/include/generated/utsrelease.h + if test -r $utsrelease1 && fgrep -q UTS_RELEASE $utsrelease1; then : + + utsrelease=linux/version.h + +elif test -r $utsrelease2 && fgrep -q UTS_RELEASE $utsrelease2; then : + + utsrelease=linux/utsrelease.h + +elif test -r $utsrelease3 && fgrep -q UTS_RELEASE $utsrelease3; then : + + utsrelease=generated/utsrelease.h + +fi + + if test "$utsrelease"; then : + + kernsrcver=`(echo "#include <$utsrelease>"; + echo "kernsrcver=UTS_RELEASE") | + cpp -I $kernelbuild/include | + grep "^kernsrcver=" | cut -d \" -f 2` + + if test -z "$kernsrcver"; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Not found" >&5 +$as_echo "Not found" >&6; } + as_fn_error $? "*** Cannot determine kernel version." "$LINENO" 5 + +fi + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Not found" >&5 +$as_echo "Not found" >&6; } + if test "x$enable_linux_builtin" != xyes; then + as_fn_error $? "*** Cannot find UTS_RELEASE definition." "$LINENO" 5 + else + as_fn_error $? " + *** Cannot find UTS_RELEASE definition. + *** Please run 'make prepare' inside the kernel source tree." "$LINENO" 5 + fi + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $kernsrcver" >&5 +$as_echo "$kernsrcver" >&6; } + + LINUX=${kernelsrc} + LINUX_OBJ=${kernelbuild} + LINUX_VERSION=${kernsrcver} + + + + + + + modpost=$LINUX/scripts/Makefile.modpost + { $as_echo "$as_me:${as_lineno-$LINENO}: checking kernel file name for module symbols" >&5 +$as_echo_n "checking kernel file name for module symbols... " >&6; } + if test "x$enable_linux_builtin" != xyes -a -f "$modpost"; then : + + if grep -q Modules.symvers $modpost; then : + + LINUX_SYMBOLS=Modules.symvers + +else + + LINUX_SYMBOLS=Module.symvers + +fi + + if test ! -f "$LINUX_OBJ/$LINUX_SYMBOLS"; then : + + as_fn_error $? " + *** Please make sure the kernel devel package for your distribution + *** is installed. If you are building with a custom kernel, make sure the + *** kernel is configured, built, and the '--with-linux=PATH' configure + *** option refers to the location of the kernel source." "$LINENO" 5 + +fi + +else + + LINUX_SYMBOLS=NONE + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINUX_SYMBOLS" >&5 +$as_echo "$LINUX_SYMBOLS" >&6; } + + + + + +# Check whether --with-spl was given. +if test "${with_spl+set}" = set; then : + withval=$with_spl; splsrc="$withval" +fi + + + +# Check whether --with-spl-obj was given. +if test "${with_spl_obj+set}" = set; then : + withval=$with_spl_obj; splbuild="$withval" +fi + + + +# Check whether --with-spl-timeout was given. +if test "${with_spl_timeout+set}" = set; then : + withval=$with_spl_timeout; timeout="$withval" +else + timeout=0 +fi + + + splsrc0="/var/lib/dkms/spl/${VERSION}/build" + splsrc1="/usr/local/src/spl-${VERSION}/${LINUX_VERSION}" + splsrc2="/usr/local/src/spl-${VERSION}" + splsrc3="/usr/src/spl-${VERSION}/${LINUX_VERSION}" + splsrc4="/usr/src/spl-${VERSION}" + splsrc5="../spl/" + splsrc6="$LINUX" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking spl source directory" >&5 +$as_echo_n "checking spl source directory... " >&6; } + if test -z "${splsrc}"; then : + + if test -e "${splsrc0}/spl.release.in"; then : + + splsrc=${splsrc0} + +elif test -e "${splsrc1}/spl.release.in"; then : + + splsrc=${splsrc1} + +elif test -e "${splsrc2}/spl.release.in"; then : + + splsrc=${splsrc2} + +elif test -e "${splsrc3}/spl.release.in"; then : + + splsrc=$(readlink -f "${splsrc3}") + +elif test -e "${splsrc4}/spl.release.in" ; then : + + splsrc=${splsrc4} + +elif test -e "${splsrc5}/spl.release.in"; then : + + splsrc=$(readlink -f "${splsrc5}") + +elif test -e "${splsrc6}/spl.release.in" ; then : + + splsrc=${splsrc6} + +else + + splsrc="Not found" + +fi + +else + + if test "$splsrc" = "NONE"; then : + + splbuild=NONE + splsrcver=NONE + +fi + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $splsrc" >&5 +$as_echo "$splsrc" >&6; } + if test ! -e "$splsrc/spl.release.in"; then : + + as_fn_error $? " + *** Please make sure the kmod spl devel package for your distribution + *** is installed then try again. If that fails you can specify the + *** location of the spl source with the '--with-spl=PATH' option." "$LINENO" 5 + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking spl build directory" >&5 +$as_echo_n "checking spl build directory... " >&6; } + while true; do + if test -z "$splbuild"; then : + + if test -e "${splsrc}/${LINUX_VERSION}/spl_config.h" ; then : + + splbuild="${splsrc}/${LINUX_VERSION}" + +elif test -e "${splsrc}/spl_config.h" ; then : + + splbuild="${splsrc}" + +elif find -L "${splsrc}" -name spl_config.h 2> /dev/null | grep -wq spl_config.h ; then : + + splbuild=$(find -L "${splsrc}" -name spl_config.h | sed 's,/spl_config.h,,') + +else + + splbuild="Not found" + +fi + +fi + if test -e "$splbuild/spl_config.h" -o $timeout -le 0; then : + + break; + +else + + sleep 1 + timeout=$((timeout-1)) + +fi + done + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $splbuild" >&5 +$as_echo "$splbuild" >&6; } + if ! test -e "$splbuild/spl_config.h"; then : + + as_fn_error $? " + *** Please make sure the kmod spl devel package for your + *** distribution is installed then try again. If that fails you + *** can specify the location of the spl objects with the + *** '--with-spl-obj=PATH' option." "$LINENO" 5 + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking spl source version" >&5 +$as_echo_n "checking spl source version... " >&6; } + if test -r $splbuild/spl_config.h && + fgrep -q SPL_META_VERSION $splbuild/spl_config.h; then : + + + splsrcver=`(echo "#include "; + echo "splsrcver=SPL_META_VERSION-SPL_META_RELEASE") | + cpp -I $splbuild | + grep "^splsrcver=" | tr -d \" | cut -d= -f2` + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_is_null" >&5 -$as_echo "$ac_cv_lib_uuid_uuid_is_null" >&6; } -if test "x$ac_cv_lib_uuid_uuid_is_null" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBUUID 1 -_ACEOF - LIBS="-luuid $LIBS" + if test -z "$splsrcver"; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Not found" >&5 +$as_echo "Not found" >&6; } + as_fn_error $? " + *** Cannot determine the version of the spl source. + *** Please prepare the spl source before running this script" "$LINENO" 5 -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? " - *** uuid_is_null() missing, libuuid-devel package required -See \`config.log' for more details" "$LINENO" 5; } fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $splsrcver" >&5 +$as_echo "$splsrcver" >&6; } - LIBUUID="-luuid" + SPL=${splsrc} + SPL_OBJ=${splbuild} + SPL_VERSION=${splsrcver} -$as_echo "#define HAVE_LIBUUID 1" >>confdefs.h + { $as_echo "$as_me:${as_lineno-$LINENO}: checking spl file name for module symbols" >&5 +$as_echo_n "checking spl file name for module symbols... " >&6; } + SPL_SYMBOLS=NONE -# Check whether --with-blkid was given. -if test "${with_blkid+set}" = set; then : - withval=$with_blkid; -else - with_blkid=check -fi + while true; do + if test -r $SPL_OBJ/Module.symvers; then : + SPL_SYMBOLS=Module.symvers - LIBBLKID= - if test "x$with_blkid" = xyes; then : +elif test -r $SPL_OBJ/Modules.symvers; then : - LIBBLKID="-lblkid" + SPL_SYMBOLS=Modules.symvers + +elif test -r $SPL_OBJ/module/Module.symvers; then : + SPL_SYMBOLS=Module.symvers -$as_echo "#define HAVE_LIBBLKID 1" >>confdefs.h +elif test -r $SPL_OBJ/module/Modules.symvers; then : + SPL_SYMBOLS=Modules.symvers fi - if test "x$with_blkid" = xcheck; then : + if test $SPL_SYMBOLS != NONE -o $timeout -le 0; then : + + break; - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for blkid_get_cache in -lblkid" >&5 -$as_echo_n "checking for blkid_get_cache in -lblkid... " >&6; } -if ${ac_cv_lib_blkid_blkid_get_cache+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lblkid $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char blkid_get_cache (); + sleep 1 + timeout=$((timeout-1)) + +fi + done + + if test "$SPL_SYMBOLS" = NONE; then : + + SPL_SYMBOLS=$LINUX_SYMBOLS + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SPL_SYMBOLS" >&5 +$as_echo "$SPL_SYMBOLS" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether modules can be built" >&5 +$as_echo_n "checking whether modules can be built... " >&6; } + + +cat confdefs.h - <<_ACEOF >conftest.c + + int -main () +main (void) { -return blkid_get_cache (); + ; return 0; } + _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_blkid_blkid_get_cache=yes + + + +cat - <<_ACEOF >conftest.h + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + if { ac_try='cp conftest.c conftest.h build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null && { ac_try='test -s build/conftest.o' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else - ac_cv_lib_blkid_blkid_get_cache=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + if test "x$enable_linux_builtin" != xyes; then + as_fn_error $? "*** Unable to build an empty module." "$LINENO" 5 + else + as_fn_error $? " + *** Unable to build an empty module. + *** Please run 'make scripts' inside the kernel source tree." "$LINENO" 5 + fi + + + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_blkid_blkid_get_cache" >&5 -$as_echo "$ac_cv_lib_blkid_blkid_get_cache" >&6; } -if test "x$ac_cv_lib_blkid_blkid_get_cache" = xyes; then : + rm -Rf build - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for blkid zfs support" >&5 -$as_echo_n "checking for blkid zfs support... " >&6; } - ZFS_DEV=`mktemp` - truncate -s 64M $ZFS_DEV - echo -en "\x0c\xb1\xba\0\0\0\0\0" | \ - dd of=$ZFS_DEV bs=1k count=8 \ - seek=128 conv=notrunc &>/dev/null \ - >/dev/null 2>/dev/null - echo -en "\x0c\xb1\xba\0\0\0\0\0" | \ - dd of=$ZFS_DEV bs=1k count=8 \ - seek=132 conv=notrunc &>/dev/null \ - >/dev/null 2>/dev/null - echo -en "\x0c\xb1\xba\0\0\0\0\0" | \ - dd of=$ZFS_DEV bs=1k count=8 \ - seek=136 conv=notrunc &>/dev/null \ - >/dev/null 2>/dev/null - echo -en "\x0c\xb1\xba\0\0\0\0\0" | \ - dd of=$ZFS_DEV bs=1k count=8 \ - seek=140 conv=notrunc &>/dev/null \ - >/dev/null 2>/dev/null - saved_LIBS="$LIBS" - LIBS="-lblkid" - if test "$cross_compiling" = yes; then : + if test "x$cross_compiling" != xyes; then : + + if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling @@ -21168,62 +22406,25 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include - #include - #include + + #include "$LINUX/include/linux/license.h" int main () { - blkid_cache cache; - char *value; - - if (blkid_get_cache(&cache, NULL) < 0) - return 1; - - value = blkid_get_tag_value(cache, "TYPE", - "$ZFS_DEV"); - if (!value) { - blkid_put_cache(cache); - return 2; - } - - if (strcmp(value, "zfs_member")) { - free(value); - blkid_put_cache(cache); - return 0; - } - - free(value); - blkid_put_cache(cache); + return !license_is_gpl_compatible("$ZFS_META_LICENSE"); ; return 0; } + _ACEOF if ac_fn_c_try_run "$LINENO"; then : - rm -f $ZFS_DEV - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - LIBBLKID="-lblkid" - - -$as_echo "#define HAVE_LIBBLKID 1" >>confdefs.h - -else +$as_echo "#define ZFS_IS_GPL_COMPATIBLE 1" >>confdefs.h - rm -f $ZFS_DEV - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - if test "x$with_blkid" != xcheck; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "--with-blkid given but unavailable -See \`config.log' for more details" "$LINENO" 5; } -fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -21231,502 +22432,561 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi - LIBS="$saved_LIBS" - -else - - if test "x$with_blkid" != xcheck; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "--with-blkid given but unavailable -See \`config.log' for more details" "$LINENO" 5; } fi -fi - -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Linux was built with CONFIG_DEBUG_LOCK_ALLOC" >&5 +$as_echo_n "checking whether Linux was built with CONFIG_DEBUG_LOCK_ALLOC... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wframe-larger-than= support" >&5 -$as_echo_n "checking for -Wframe-larger-than= support... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.c - saved_flags="$CFLAGS" - CFLAGS="$CFLAGS -Wframe-larger-than=1024" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + #include int -main () +main (void) { + #ifndef CONFIG_DEBUG_LOCK_ALLOC + #error CONFIG_DEBUG_LOCK_ALLOC not #defined + #endif + ; return 0; } -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - FRAME_LARGER_THAN=-Wframe-larger-than=1024 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +_ACEOF -else - FRAME_LARGER_THAN= - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +cat - <<_ACEOF >conftest.h - CFLAGS="$saved_flags" +_ACEOF + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + if { ac_try='cp conftest.c conftest.h build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null && { ac_try='test -s build/conftest.o' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : - if test "x$runstatedir" = x; then - runstatedir='${localstatedir}/run' + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mutex_lock() is GPL-only" >&5 +$as_echo_n "checking whether mutex_lock() is GPL-only... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" - for ac_func in mlockall -do : - ac_fn_c_check_func "$LINENO" "mlockall" "ac_cv_func_mlockall" -if test "x$ac_cv_func_mlockall" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_MLOCKALL 1 -_ACEOF -fi -done +cat confdefs.h - <<_ACEOF >conftest.c - ;; - all) + #include + #include -# Check whether --with-linux was given. -if test "${with_linux+set}" = set; then : - withval=$with_linux; kernelsrc="$withval" -fi + MODULE_LICENSE("$ZFS_META_LICENSE"); +int +main (void) +{ + struct mutex lock; -# Check whether --with-linux-obj was given. -if test "${with_linux_obj+set}" = set; then : - withval=$with_linux_obj; kernelbuild="$withval" -fi + mutex_init(&lock); + mutex_lock(&lock); + mutex_unlock(&lock); + ; + return 0; +} - { $as_echo "$as_me:${as_lineno-$LINENO}: checking kernel source directory" >&5 -$as_echo_n "checking kernel source directory... " >&6; } - if test -z "$kernelsrc"; then : +_ACEOF - if test -e "/lib/modules/$(uname -r)/source"; then : - headersdir="/lib/modules/$(uname -r)/source" - sourcelink=$(readlink -f "$headersdir") -elif test -e "/lib/modules/$(uname -r)/build"; then : +cat - <<_ACEOF >conftest.h - headersdir="/lib/modules/$(uname -r)/build" - sourcelink=$(readlink -f "$headersdir") +_ACEOF -else - sourcelink=$(ls -1d /usr/src/kernels/* \ - /usr/src/linux-* \ - 2>/dev/null | grep -v obj | tail -1) + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + if { ac_try='cp conftest.c conftest.h build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null && { ac_try='test -s build/conftest.o' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - if test -n "$sourcelink" && test -e ${sourcelink}; then : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - kernelsrc=`readlink -f ${sourcelink}` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + as_fn_error $? " + *** Kernel built with CONFIG_DEBUG_LOCK_ALLOC which is incompatible + *** with the CDDL license and will prevent the module linking stage + *** from succeeding. You must rebuild your kernel without this + *** option enabled." "$LINENO" 5 -else - kernelsrc="Not found" fi + rm -Rf build -else - if test "$kernelsrc" = "NONE"; then : + EXTRA_KCFLAGS="$tmp_flags" - kernsrcver=NONE -fi +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $kernelsrc" >&5 -$as_echo "$kernelsrc" >&6; } - if test ! -d "$kernelsrc"; then : - as_fn_error $? " - *** Please make sure the kernel devel package for your distribution - *** is installed and then try again. If that fails, you can specify the - *** location of the kernel source with the '--with-linux=PATH' option." "$LINENO" 5 fi + rm -Rf build - { $as_echo "$as_me:${as_lineno-$LINENO}: checking kernel build directory" >&5 -$as_echo_n "checking kernel build directory... " >&6; } - if test -z "$kernelbuild"; then : - if test -e "/lib/modules/$(uname -r)/build"; then : - kernelbuild=`readlink -f /lib/modules/$(uname -r)/build` -elif test -d ${kernelsrc}-obj/${target_cpu}/${target_cpu}; then : - kernelbuild=${kernelsrc}-obj/${target_cpu}/${target_cpu} -elif test -d ${kernelsrc}-obj/${target_cpu}/default; then : + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="-I\$(src)" - kernelbuild=${kernelsrc}-obj/${target_cpu}/default + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether DECLARE_EVENT_CLASS() is available" >&5 +$as_echo_n "checking whether DECLARE_EVENT_CLASS() is available... " >&6; } -elif test -d `dirname ${kernelsrc}`/build-${target_cpu}; then : - kernelbuild=`dirname ${kernelsrc}`/build-${target_cpu} +cat confdefs.h - <<_ACEOF >conftest.c -else - kernelbuild=${kernelsrc} + #include + MODULE_LICENSE(ZFS_META_LICENSE); -fi + #define CREATE_TRACE_POINTS + #include "conftest.h" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $kernelbuild" >&5 -$as_echo "$kernelbuild" >&6; } +int +main (void) +{ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking kernel source version" >&5 -$as_echo_n "checking kernel source version... " >&6; } - utsrelease1=$kernelbuild/include/linux/version.h - utsrelease2=$kernelbuild/include/linux/utsrelease.h - utsrelease3=$kernelbuild/include/generated/utsrelease.h - if test -r $utsrelease1 && fgrep -q UTS_RELEASE $utsrelease1; then : + trace_zfs_autoconf_event_one(1UL); + trace_zfs_autoconf_event_two(2UL); - utsrelease=linux/version.h + ; + return 0; +} -elif test -r $utsrelease2 && fgrep -q UTS_RELEASE $utsrelease2; then : +_ACEOF - utsrelease=linux/utsrelease.h -elif test -r $utsrelease3 && fgrep -q UTS_RELEASE $utsrelease3; then : - utsrelease=generated/utsrelease.h +cat - <<_ACEOF >conftest.h -fi + #if !defined(_CONFTEST_H) || defined(TRACE_HEADER_MULTI_READ) + #define _CONFTEST_H - if test "$utsrelease"; then : + #undef TRACE_SYSTEM + #define TRACE_SYSTEM zfs + #include - kernsrcver=`(echo "#include <$utsrelease>"; - echo "kernsrcver=UTS_RELEASE") | - cpp -I $kernelbuild/include | - grep "^kernsrcver=" | cut -d \" -f 2` + DECLARE_EVENT_CLASS(zfs_autoconf_event_class, + TP_PROTO(unsigned long i), + TP_ARGS(i), + TP_STRUCT__entry( + __field(unsigned long, i) + ), + TP_fast_assign( + __entry->i = i; + ), + TP_printk("i = %lu", __entry->i) + ); - if test -z "$kernsrcver"; then : + #define DEFINE_AUTOCONF_EVENT(name) \ + DEFINE_EVENT(zfs_autoconf_event_class, name, \ + TP_PROTO(unsigned long i), \ + TP_ARGS(i)) + DEFINE_AUTOCONF_EVENT(zfs_autoconf_event_one); + DEFINE_AUTOCONF_EVENT(zfs_autoconf_event_two); - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Not found" >&5 -$as_echo "Not found" >&6; } - as_fn_error $? "*** Cannot determine kernel version." "$LINENO" 5 + #endif /* _CONFTEST_H */ -fi + #undef TRACE_INCLUDE_PATH + #define TRACE_INCLUDE_PATH . + #define TRACE_INCLUDE_FILE conftest + #include -else +_ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Not found" >&5 -$as_echo "Not found" >&6; } - if test "x$enable_linux_builtin" != xyes; then - as_fn_error $? "*** Cannot find UTS_RELEASE definition." "$LINENO" 5 - else - as_fn_error $? " - *** Cannot find UTS_RELEASE definition. - *** Please run 'make prepare' inside the kernel source tree." "$LINENO" 5 - fi -fi + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + if { ac_try='cp conftest.c conftest.h build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null && { ac_try='test -s build/conftest.o' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $kernsrcver" >&5 -$as_echo "$kernsrcver" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - LINUX=${kernelsrc} - LINUX_OBJ=${kernelbuild} - LINUX_VERSION=${kernsrcver} +$as_echo "#define HAVE_DECLARE_EVENT_CLASS 1" >>confdefs.h +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - modpost=$LINUX/scripts/Makefile.modpost - { $as_echo "$as_me:${as_lineno-$LINENO}: checking kernel file name for module symbols" >&5 -$as_echo_n "checking kernel file name for module symbols... " >&6; } - if test "x$enable_linux_builtin" != xyes -a -f "$modpost"; then : +fi + rm -Rf build - if grep -q Modules.symvers $modpost; then : - LINUX_SYMBOLS=Modules.symvers + EXTRA_KCFLAGS="$tmp_flags" -else - LINUX_SYMBOLS=Module.symvers + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether current->bio_tail exists" >&5 +$as_echo_n "checking whether current->bio_tail exists... " >&6; } -fi - if test ! -f "$LINUX_OBJ/$LINUX_SYMBOLS"; then : +cat confdefs.h - <<_ACEOF >conftest.c - as_fn_error $? " - *** Please make sure the kernel devel package for your distribution - *** is installed. If you are building with a custom kernel, make sure the - *** kernel is configured, built, and the '--with-linux=PATH' configure - *** option refers to the location of the kernel source." "$LINENO" 5 -fi + #include -else +int +main (void) +{ - LINUX_SYMBOLS=NONE + current->bio_tail = (struct bio **) NULL; -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINUX_SYMBOLS" >&5 -$as_echo "$LINUX_SYMBOLS" >&6; } + ; + return 0; +} +_ACEOF +cat - <<_ACEOF >conftest.h -# Check whether --with-spl was given. -if test "${with_spl+set}" = set; then : - withval=$with_spl; splsrc="$withval" -fi +_ACEOF + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + if { ac_try='cp conftest.c conftest.h build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null && { ac_try='test -s build/conftest.o' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : -# Check whether --with-spl-obj was given. -if test "${with_spl_obj+set}" = set; then : - withval=$with_spl_obj; splbuild="$withval" -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +$as_echo "#define HAVE_CURRENT_BIO_TAIL 1" >>confdefs.h -# Check whether --with-spl-timeout was given. -if test "${with_spl_timeout+set}" = set; then : - withval=$with_spl_timeout; timeout="$withval" else - timeout=0 -fi + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether current->bio_list exists" >&5 +$as_echo_n "checking whether current->bio_list exists... " >&6; } - splsrc0="/var/lib/dkms/spl/${VERSION}/build" - splsrc1="/usr/local/src/spl-${VERSION}/${LINUX_VERSION}" - splsrc2="/usr/local/src/spl-${VERSION}" - splsrc3="/usr/src/spl-${VERSION}/${LINUX_VERSION}" - splsrc4="/usr/src/spl-${VERSION}" - splsrc5="../spl/" - splsrc6="$LINUX" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking spl source directory" >&5 -$as_echo_n "checking spl source directory... " >&6; } - if test -z "${splsrc}"; then : +cat confdefs.h - <<_ACEOF >conftest.c - if test -e "${splsrc0}/spl.release.in"; then : - splsrc=${splsrc0} + #include -elif test -e "${splsrc1}/spl.release.in"; then : +int +main (void) +{ - splsrc=${splsrc1} + current->bio_list = (struct bio_list *) NULL; -elif test -e "${splsrc2}/spl.release.in"; then : + ; + return 0; +} - splsrc=${splsrc2} +_ACEOF -elif test -e "${splsrc3}/spl.release.in"; then : - splsrc=$(readlink -f "${splsrc3}") -elif test -e "${splsrc4}/spl.release.in" ; then : +cat - <<_ACEOF >conftest.h - splsrc=${splsrc4} +_ACEOF -elif test -e "${splsrc5}/spl.release.in"; then : - splsrc=$(readlink -f "${splsrc5}") + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + if { ac_try='cp conftest.c conftest.h build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null && { ac_try='test -s build/conftest.o' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : -elif test -e "${splsrc6}/spl.release.in" ; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_CURRENT_BIO_LIST 1" >>confdefs.h - splsrc=${splsrc6} else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + as_fn_error $? "no - Please file a bug report at + https://github.com/zfsonlinux/zfs/issues/new" "$LINENO" 5 + - splsrc="Not found" fi + rm -Rf build -else - if test "$splsrc" = "NONE"; then : - splbuild=NONE - splsrcver=NONE -fi fi + rm -Rf build - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $splsrc" >&5 -$as_echo "$splsrc" >&6; } - if test ! -e "$splsrc/spl.release.in"; then : - as_fn_error $? " - *** Please make sure the kmod spl devel package for your distribution - *** is installed then try again. If that fails you can specify the - *** location of the spl source with the '--with-spl=PATH' option." "$LINENO" 5 -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking spl build directory" >&5 -$as_echo_n "checking spl build directory... " >&6; } - while true; do - if test -z "$splbuild"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking block device operation prototypes" >&5 +$as_echo_n "checking block device operation prototypes... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}" - if test -e "${splsrc}/${LINUX_VERSION}/spl_config.h" ; then : - splbuild="${splsrc}/${LINUX_VERSION}" +cat confdefs.h - <<_ACEOF >conftest.c -elif test -e "${splsrc}/spl_config.h" ; then : - splbuild="${splsrc}" + #include -elif find -L "${splsrc}" -name spl_config.h 2> /dev/null | grep -wq spl_config.h ; then : + int blk_open(struct block_device *bdev, fmode_t mode) + { return 0; } + int blk_ioctl(struct block_device *bdev, fmode_t mode, + unsigned x, unsigned long y) { return 0; } + int blk_compat_ioctl(struct block_device * bdev, fmode_t mode, + unsigned x, unsigned long y) { return 0; } - splbuild=$(find -L "${splsrc}" -name spl_config.h | sed 's,/spl_config.h,,') + static const struct block_device_operations + bops __attribute__ ((unused)) = { + .open = blk_open, + .release = NULL, + .ioctl = blk_ioctl, + .compat_ioctl = blk_compat_ioctl, + }; -else +int +main (void) +{ - splbuild="Not found" -fi + ; + return 0; +} -fi - if test -e "$splbuild/spl_config.h" -o $timeout -le 0; then : +_ACEOF - break; -else - sleep 1 - timeout=$((timeout-1)) +cat - <<_ACEOF >conftest.h -fi - done +_ACEOF - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $splbuild" >&5 -$as_echo "$splbuild" >&6; } - if ! test -e "$splbuild/spl_config.h"; then : - as_fn_error $? " - *** Please make sure the kmod spl devel package for your - *** distribution is installed then try again. If that fails you - *** can specify the location of the spl objects with the - *** '--with-spl-obj=PATH' option." "$LINENO" 5 + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + if { ac_try='cp conftest.c conftest.h build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null && { ac_try='test -s build/conftest.o' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : -fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: struct block_device" >&5 +$as_echo "struct block_device" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking spl source version" >&5 -$as_echo_n "checking spl source version... " >&6; } - if test -r $splbuild/spl_config.h && - fgrep -q SPL_META_VERSION $splbuild/spl_config.h; then : +$as_echo "#define HAVE_BDEV_BLOCK_DEVICE_OPERATIONS 1" >>confdefs.h + + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: struct inode" >&5 +$as_echo "struct inode" >&6; } - splsrcver=`(echo "#include "; - echo "splsrcver=SPL_META_VERSION-SPL_META_RELEASE") | - cpp -I $splbuild | - grep "^splsrcver=" | tr -d \" | cut -d= -f2` fi + rm -Rf build - if test -z "$splsrcver"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: Not found" >&5 -$as_echo "Not found" >&6; } - as_fn_error $? " - *** Cannot determine the version of the spl source. - *** Please prepare the spl source before running this script" "$LINENO" 5 + EXTRA_KCFLAGS="$tmp_flags" -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $splsrcver" >&5 -$as_echo "$splsrcver" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether block_device_operations.release is void" >&5 +$as_echo_n "checking whether block_device_operations.release is void... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}" - SPL=${splsrc} - SPL_OBJ=${splbuild} - SPL_VERSION=${splsrcver} +cat confdefs.h - <<_ACEOF >conftest.c + #include + void blk_release(struct gendisk *g, fmode_t mode) { return; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking spl file name for module symbols" >&5 -$as_echo_n "checking spl file name for module symbols... " >&6; } - SPL_SYMBOLS=NONE + static const struct block_device_operations + bops __attribute__ ((unused)) = { + .open = NULL, + .release = blk_release, + .ioctl = NULL, + .compat_ioctl = NULL, + }; - while true; do - if test -r $SPL_OBJ/Module.symvers; then : +int +main (void) +{ - SPL_SYMBOLS=Module.symvers -elif test -r $SPL_OBJ/Modules.symvers; then : + ; + return 0; +} - SPL_SYMBOLS=Modules.symvers +_ACEOF -elif test -r $SPL_OBJ/module/Module.symvers; then : - SPL_SYMBOLS=Module.symvers -elif test -r $SPL_OBJ/module/Modules.symvers; then : +cat - <<_ACEOF >conftest.h - SPL_SYMBOLS=Modules.symvers +_ACEOF -fi - if test $SPL_SYMBOLS != NONE -o $timeout -le 0; then : + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + if { ac_try='cp conftest.c conftest.h build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null && { ac_try='test -s build/conftest.o' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : - break; + { $as_echo "$as_me:${as_lineno-$LINENO}: result: void" >&5 +$as_echo "void" >&6; } -else +$as_echo "#define HAVE_BLOCK_DEVICE_OPERATIONS_RELEASE_VOID 1" >>confdefs.h - sleep 1 - timeout=$((timeout-1)) -fi - done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - if test "$SPL_SYMBOLS" = NONE; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: int" >&5 +$as_echo "int" >&6; } - SPL_SYMBOLS=$LINUX_SYMBOLS -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SPL_SYMBOLS" >&5 -$as_echo "$SPL_SYMBOLS" >&6; } +fi + rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether modules can be built" >&5 -$as_echo_n "checking whether modules can be built... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether kernel defines fmode_t" >&5 +$as_echo_n "checking whether kernel defines fmode_t... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c + #include + int main (void) { + fmode_t *ptr __attribute__ ((unused)); + ; return 0; } @@ -21759,19 +23019,15 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } +$as_echo "#define HAVE_FMODE_T 1" >>confdefs.h + + else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - if test "x$enable_linux_builtin" != xyes; then - as_fn_error $? "*** Unable to build an empty module." "$LINENO" 5 - else - as_fn_error $? " - *** Unable to build an empty module. - *** Please run 'make scripts' inside the kernel source tree." "$LINENO" 5 - fi @@ -21781,63 +23037,87 @@ fi - if test "x$cross_compiling" != xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether kernel defines KOBJ_NAME_LEN" >&5 +$as_echo_n "checking whether kernel defines KOBJ_NAME_LEN... " >&6; } - if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run test program while cross compiling -See \`config.log' for more details" "$LINENO" 5; } -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + +cat confdefs.h - <<_ACEOF >conftest.c - #include "$LINUX/include/linux/license.h" + #include int -main () +main (void) { - return !license_is_gpl_compatible("$ZFS_META_LICENSE"); + int val __attribute__ ((unused)); + val = KOBJ_NAME_LEN; ; return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : -$as_echo "#define ZFS_IS_GPL_COMPATIBLE 1" >>confdefs.h +cat - <<_ACEOF >conftest.h + +_ACEOF + + + rm -Rf build && mkdir -p build && touch build/conftest.mod.c + echo "obj-m := conftest.o" >build/Makefile + modpost_flag='' + test "x$enable_linux_builtin" = xyes && modpost_flag='modpost=true' # fake modpost stage + if { ac_try='cp conftest.c conftest.h build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build $modpost_flag' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } >/dev/null && { ac_try='test -s build/conftest.o' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_KOBJ_NAME_LEN 1" >>confdefs.h + + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi fi + rm -Rf build - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Linux was built with CONFIG_DEBUG_LOCK_ALLOC" >&5 -$as_echo_n "checking whether Linux was built with CONFIG_DEBUG_LOCK_ALLOC... " >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether blkdev_get() wants 3 args" >&5 +$as_echo_n "checking whether blkdev_get() wants 3 args... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include int main (void) { - #ifndef CONFIG_DEBUG_LOCK_ALLOC - #error CONFIG_DEBUG_LOCK_ALLOC not #defined - #endif + struct block_device *bdev = NULL; + (void) blkdev_get(bdev, 0, NULL); ; return 0; @@ -21871,28 +23151,38 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mutex_lock() is GPL-only" >&5 -$as_echo_n "checking whether mutex_lock() is GPL-only... " >&6; } - tmp_flags="$EXTRA_KCFLAGS" +$as_echo "#define HAVE_3ARG_BLKDEV_GET 1" >>confdefs.h -cat confdefs.h - <<_ACEOF >conftest.c +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - #include - #include - MODULE_LICENSE("$ZFS_META_LICENSE"); +fi + rm -Rf build + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether blkdev_get_by_path() is available" >&5 +$as_echo_n "checking whether blkdev_get_by_path() is available... " >&6; } + + + +cat confdefs.h - <<_ACEOF >conftest.c + + + #include int main (void) { - struct mutex lock; - - mutex_init(&lock); - mutex_lock(&lock); - mutex_unlock(&lock); + blkdev_get_by_path(NULL, 0, NULL); ; return 0; @@ -21922,71 +23212,81 @@ _ACEOF ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - + rc=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - as_fn_error $? " - *** Kernel built with CONFIG_DEBUG_LOCK_ALLOC which is incompatible - *** with the CDDL license and will prevent the module linking stage - *** from succeeding. You must rebuild your kernel without this - *** option enabled." "$LINENO" 5 - + rc=1 fi rm -Rf build - EXTRA_KCFLAGS="$tmp_flags" + if test $rc -ne 0; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]blkdev_get_by_path[[:space:]]' \ + $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null + rc=$? + if test $rc -ne 0; then + export=0 + for file in fs/block_dev.c; do + grep -q -E "EXPORT_SYMBOL.*(blkdev_get_by_path)" \ + "$LINUX/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + fi + if test $rc -ne 0; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + else : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - -fi - rm -Rf build - - +$as_echo "#define HAVE_BLKDEV_GET_BY_PATH 1" >>confdefs.h + fi + fi - tmp_flags="$EXTRA_KCFLAGS" - EXTRA_KCFLAGS="-I\$(src)" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open_bdev_exclusive() is available" >&5 +$as_echo_n "checking whether open_bdev_exclusive() is available... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether DECLARE_EVENT_CLASS() is available" >&5 -$as_echo_n "checking whether DECLARE_EVENT_CLASS() is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include - MODULE_LICENSE(ZFS_META_LICENSE); - - #define CREATE_TRACE_POINTS - #include "conftest.h" + #include int main (void) { - trace_zfs_autoconf_event_one(1UL); - trace_zfs_autoconf_event_two(2UL); + open_bdev_exclusive(NULL, 0, NULL); ; return 0; @@ -21998,39 +23298,6 @@ _ACEOF cat - <<_ACEOF >conftest.h - #if !defined(_CONFTEST_H) || defined(TRACE_HEADER_MULTI_READ) - #define _CONFTEST_H - - #undef TRACE_SYSTEM - #define TRACE_SYSTEM zfs - #include - - DECLARE_EVENT_CLASS(zfs_autoconf_event_class, - TP_PROTO(unsigned long i), - TP_ARGS(i), - TP_STRUCT__entry( - __field(unsigned long, i) - ), - TP_fast_assign( - __entry->i = i; - ), - TP_printk("i = %lu", __entry->i) - ); - - #define DEFINE_AUTOCONF_EVENT(name) \ - DEFINE_EVENT(zfs_autoconf_event_class, name, \ - TP_PROTO(unsigned long i), \ - TP_ARGS(i)) - DEFINE_AUTOCONF_EVENT(zfs_autoconf_event_one); - DEFINE_AUTOCONF_EVENT(zfs_autoconf_event_two); - - #endif /* _CONFTEST_H */ - - #undef TRACE_INCLUDE_PATH - #define TRACE_INCLUDE_PATH . - #define TRACE_INCLUDE_FILE conftest - #include - _ACEOF @@ -22049,43 +23316,81 @@ _ACEOF ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -$as_echo "#define HAVE_DECLARE_EVENT_CLASS 1" >>confdefs.h +fi + rm -Rf build -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + if test $rc -ne 0; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]open_bdev_exclusive[[:space:]]' \ + $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null + rc=$? + if test $rc -ne 0; then + export=0 + for file in fs/block_dev.c; do + grep -q -E "EXPORT_SYMBOL.*(open_bdev_exclusive)" \ + "$LINUX/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 0; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } -fi - rm -Rf build + else : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - EXTRA_KCFLAGS="$tmp_flags" +$as_echo "#define HAVE_OPEN_BDEV_EXCLUSIVE 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether current->bio_tail exists" >&5 -$as_echo_n "checking whether current->bio_tail exists... " >&6; } + fi + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lookup_bdev() is available" >&5 +$as_echo_n "checking whether lookup_bdev() is available... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.c - #include + #include int main (void) { - current->bio_tail = (struct bio **) NULL; + lookup_bdev(NULL); ; return 0; @@ -22115,33 +23420,82 @@ _ACEOF ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -$as_echo "#define HAVE_CURRENT_BIO_TAIL 1" >>confdefs.h +fi + rm -Rf build -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + if test $rc -ne 0; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether current->bio_list exists" >&5 -$as_echo_n "checking whether current->bio_list exists... " >&6; } + + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]lookup_bdev[[:space:]]' \ + $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null + rc=$? + if test $rc -ne 0; then + export=0 + for file in fs/block_dev.c; do + grep -q -E "EXPORT_SYMBOL.*(lookup_bdev)" \ + "$LINUX/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 0; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + else : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_LOOKUP_BDEV 1" >>confdefs.h + + + fi + fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether invalidate_bdev() wants 1 arg" >&5 +$as_echo_n "checking whether invalidate_bdev() wants 1 arg... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include int main (void) { - current->bio_list = (struct bio_list *) NULL; + struct block_device *bdev = NULL; + invalidate_bdev(bdev); ; return 0; @@ -22172,25 +23526,18 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_CURRENT_BIO_LIST 1" >>confdefs.h +$as_echo "#define HAVE_1ARG_INVALIDATE_BDEV 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - as_fn_error $? "no - Please file a bug report at - https://github.com/zfsonlinux/zfs/issues/new" "$LINENO" 5 - - - -fi - rm -Rf build - - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } @@ -22200,8 +23547,8 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking block device operation prototypes" >&5 -$as_echo_n "checking block device operation prototypes... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether bdev_logical_block_size() is available" >&5 +$as_echo_n "checking whether bdev_logical_block_size() is available... " >&6; } tmp_flags="$EXTRA_KCFLAGS" EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}" @@ -22211,25 +23558,12 @@ cat confdefs.h - <<_ACEOF >conftest.c #include - int blk_open(struct block_device *bdev, fmode_t mode) - { return 0; } - int blk_ioctl(struct block_device *bdev, fmode_t mode, - unsigned x, unsigned long y) { return 0; } - int blk_compat_ioctl(struct block_device * bdev, fmode_t mode, - unsigned x, unsigned long y) { return 0; } - - static const struct block_device_operations - bops __attribute__ ((unused)) = { - .open = blk_open, - .release = NULL, - .ioctl = blk_ioctl, - .compat_ioctl = blk_compat_ioctl, - }; - int main (void) { + struct block_device *bdev = NULL; + bdev_logical_block_size(bdev); ; return 0; @@ -22260,18 +23594,18 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: struct block_device" >&5 -$as_echo "struct block_device" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -$as_echo "#define HAVE_BDEV_BLOCK_DEVICE_OPERATIONS 1" >>confdefs.h +$as_echo "#define HAVE_BDEV_LOGICAL_BLOCK_SIZE 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: struct inode" >&5 -$as_echo "struct inode" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } @@ -22282,8 +23616,8 @@ fi EXTRA_KCFLAGS="$tmp_flags" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether block_device_operations.release is void" >&5 -$as_echo_n "checking whether block_device_operations.release is void... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether bdev_physical_block_size() is available" >&5 +$as_echo_n "checking whether bdev_physical_block_size() is available... " >&6; } tmp_flags="$EXTRA_KCFLAGS" EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}" @@ -22293,20 +23627,12 @@ cat confdefs.h - <<_ACEOF >conftest.c #include - void blk_release(struct gendisk *g, fmode_t mode) { return; } - - static const struct block_device_operations - bops __attribute__ ((unused)) = { - .open = NULL, - .release = blk_release, - .ioctl = NULL, - .compat_ioctl = NULL, - }; - int main (void) { + struct block_device *bdev = NULL; + bdev_physical_block_size(bdev); ; return 0; @@ -22337,18 +23663,18 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: void" >&5 -$as_echo "void" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -$as_echo "#define HAVE_BLOCK_DEVICE_OPERATIONS_RELEASE_VOID 1" >>confdefs.h +$as_echo "#define HAVE_BDEV_PHYSICAL_BLOCK_SIZE 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: int" >&5 -$as_echo "int" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } @@ -22358,20 +23684,22 @@ fi EXTRA_KCFLAGS="$tmp_flags" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether kernel defines fmode_t" >&5 -$as_echo_n "checking whether kernel defines fmode_t... " >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether bio has bi_iter" >&5 +$as_echo_n "checking whether bio has bi_iter... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include int main (void) { - fmode_t *ptr __attribute__ ((unused)); + struct bio bio; + bio.bi_iter.bi_sector = 0; ; return 0; @@ -22405,7 +23733,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_FMODE_T 1" >>confdefs.h +$as_echo "#define HAVE_BIO_BVEC_ITER 1" >>confdefs.h else @@ -22423,21 +23751,23 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether kernel defines KOBJ_NAME_LEN" >&5 -$as_echo_n "checking whether kernel defines KOBJ_NAME_LEN... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether BIO_RW_FAILFAST_* are defined" >&5 +$as_echo_n "checking whether BIO_RW_FAILFAST_* are defined... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include int main (void) { - int val __attribute__ ((unused)); - val = KOBJ_NAME_LEN; + int flags __attribute__ ((unused)); + flags = ((1 << BIO_RW_FAILFAST_DEV) | + (1 << BIO_RW_FAILFAST_TRANSPORT) | + (1 << BIO_RW_FAILFAST_DRIVER)); ; return 0; @@ -22471,7 +23801,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_KOBJ_NAME_LEN 1" >>confdefs.h +$as_echo "#define HAVE_BIO_RW_FAILFAST_DTD 1" >>confdefs.h else @@ -22489,21 +23819,21 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether blkdev_get() wants 3 args" >&5 -$as_echo_n "checking whether blkdev_get() wants 3 args... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether REQ_FAILFAST_MASK is defined" >&5 +$as_echo_n "checking whether REQ_FAILFAST_MASK is defined... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include int main (void) { - struct block_device *bdev = NULL; - (void) blkdev_get(bdev, 0, NULL); + int flags __attribute__ ((unused)); + flags = REQ_FAILFAST_MASK; ; return 0; @@ -22537,7 +23867,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_3ARG_BLKDEV_GET 1" >>confdefs.h +$as_echo "#define HAVE_REQ_FAILFAST_MASK 1" >>confdefs.h else @@ -22554,21 +23884,24 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether blkdev_get_by_path() is available" >&5 -$as_echo_n "checking whether blkdev_get_by_path() is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether bio_end_io_t wants 1 arg" >&5 +$as_echo_n "checking whether bio_end_io_t wants 1 arg... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include + + void wanted_end_io(struct bio *bio) { return; } + + bio_end_io_t *end_io __attribute__ ((unused)) = wanted_end_io; int main (void) { - blkdev_get_by_path(NULL, 0, NULL); ; return 0; @@ -22598,81 +23931,43 @@ _ACEOF ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - rc=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - rc=1 - - -fi - rm -Rf build + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - if test $rc -ne 0; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - else - if test "x$enable_linux_builtin" != xyes; then +$as_echo "#define HAVE_1ARG_BIO_END_IO_T 1" >>confdefs.h - grep -q -E '[[:space:]]blkdev_get_by_path[[:space:]]' \ - $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null - rc=$? - if test $rc -ne 0; then - export=0 - for file in fs/block_dev.c; do - grep -q -E "EXPORT_SYMBOL.*(blkdev_get_by_path)" \ - "$LINUX/$file" 2>/dev/null - rc=$? - if test $rc -eq 0; then - export=1 - break; - fi - done - if test $export -eq 0; then : - rc=1 - else : - rc=0 - fi - else : - rc=0 - fi - fi - if test $rc -ne 0; then : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - else : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -$as_echo "#define HAVE_BLKDEV_GET_BY_PATH 1" >>confdefs.h +fi + rm -Rf build - fi - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open_bdev_exclusive() is available" >&5 -$as_echo_n "checking whether open_bdev_exclusive() is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether BIO_RW_BARRIER is defined" >&5 +$as_echo_n "checking whether BIO_RW_BARRIER is defined... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include int main (void) { - open_bdev_exclusive(NULL, 0, NULL); + int flags __attribute__ ((unused)); + flags = BIO_RW_BARRIER; ; return 0; @@ -22702,81 +23997,43 @@ _ACEOF ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - rc=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - rc=1 - - -fi - rm -Rf build + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - if test $rc -ne 0; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - else - if test "x$enable_linux_builtin" != xyes; then +$as_echo "#define HAVE_BIO_RW_BARRIER 1" >>confdefs.h - grep -q -E '[[:space:]]open_bdev_exclusive[[:space:]]' \ - $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null - rc=$? - if test $rc -ne 0; then - export=0 - for file in fs/block_dev.c; do - grep -q -E "EXPORT_SYMBOL.*(open_bdev_exclusive)" \ - "$LINUX/$file" 2>/dev/null - rc=$? - if test $rc -eq 0; then - export=1 - break; - fi - done - if test $export -eq 0; then : - rc=1 - else : - rc=0 - fi - else : - rc=0 - fi - fi - if test $rc -ne 0; then : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - else : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -$as_echo "#define HAVE_OPEN_BDEV_EXCLUSIVE 1" >>confdefs.h +fi + rm -Rf build - fi - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lookup_bdev() is available" >&5 -$as_echo_n "checking whether lookup_bdev() is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether BIO_RW_DISCARD is defined" >&5 +$as_echo_n "checking whether BIO_RW_DISCARD is defined... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include int main (void) { - lookup_bdev(NULL); + int flags __attribute__ ((unused)); + flags = BIO_RW_DISCARD; ; return 0; @@ -22806,82 +24063,45 @@ _ACEOF ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - rc=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - rc=1 - - -fi - rm -Rf build + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } - if test $rc -ne 0; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - else - if test "x$enable_linux_builtin" != xyes; then +$as_echo "#define HAVE_BIO_RW_DISCARD 1" >>confdefs.h - grep -q -E '[[:space:]]lookup_bdev[[:space:]]' \ - $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null - rc=$? - if test $rc -ne 0; then - export=0 - for file in fs/block_dev.c; do - grep -q -E "EXPORT_SYMBOL.*(lookup_bdev)" \ - "$LINUX/$file" 2>/dev/null - rc=$? - if test $rc -eq 0; then - export=1 - break; - fi - done - if test $export -eq 0; then : - rc=1 - else : - rc=0 - fi - else : - rc=0 - fi - fi - if test $rc -ne 0; then : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - else : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -$as_echo "#define HAVE_LOOKUP_BDEV 1" >>confdefs.h +fi + rm -Rf build - fi - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether invalidate_bdev() wants 1 arg" >&5 -$as_echo_n "checking whether invalidate_bdev() wants 1 arg... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether blk_queue_flush() is available" >&5 +$as_echo_n "checking whether blk_queue_flush() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}" cat confdefs.h - <<_ACEOF >conftest.c - #include + #include int main (void) { - struct block_device *bdev = NULL; - invalidate_bdev(bdev); + struct request_queue *q = NULL; + (void) blk_queue_flush(q, REQ_FLUSH); ; return 0; @@ -22915,7 +24135,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_1ARG_INVALIDATE_BDEV 1" >>confdefs.h +$as_echo "#define HAVE_BLK_QUEUE_FLUSH 1" >>confdefs.h else @@ -22932,24 +24152,24 @@ fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether bdev_logical_block_size() is available" >&5 -$as_echo_n "checking whether bdev_logical_block_size() is available... " >&6; } - tmp_flags="$EXTRA_KCFLAGS" - EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether blk_queue_flush() is GPL-only" >&5 +$as_echo_n "checking whether blk_queue_flush() is GPL-only... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c + #include #include + MODULE_LICENSE("$ZFS_META_LICENSE"); + int main (void) { - struct block_device *bdev = NULL; - bdev_logical_block_size(bdev); + struct request_queue *q = NULL; + (void) blk_queue_flush(q, REQ_FLUSH); ; return 0; @@ -22980,18 +24200,18 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_BDEV_LOGICAL_BLOCK_SIZE 1" >>confdefs.h - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_BLK_QUEUE_FLUSH_GPL_ONLY 1" >>confdefs.h + @@ -23002,8 +24222,8 @@ fi EXTRA_KCFLAGS="$tmp_flags" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether bdev_physical_block_size() is available" >&5 -$as_echo_n "checking whether bdev_physical_block_size() is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether blk_queue_max_hw_sectors() is available" >&5 +$as_echo_n "checking whether blk_queue_max_hw_sectors() is available... " >&6; } tmp_flags="$EXTRA_KCFLAGS" EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}" @@ -23017,8 +24237,8 @@ int main (void) { - struct block_device *bdev = NULL; - bdev_physical_block_size(bdev); + struct request_queue *q = NULL; + (void) blk_queue_max_hw_sectors(q, BLK_SAFE_MAX_SECTORS); ; return 0; @@ -23052,7 +24272,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_BDEV_PHYSICAL_BLOCK_SIZE 1" >>confdefs.h +$as_echo "#define HAVE_BLK_QUEUE_MAX_HW_SECTORS 1" >>confdefs.h else @@ -23071,21 +24291,23 @@ fi EXTRA_KCFLAGS="$tmp_flags" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether bio has bi_iter" >&5 -$as_echo_n "checking whether bio has bi_iter... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether blk_queue_max_segments() is available" >&5 +$as_echo_n "checking whether blk_queue_max_segments() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}" cat confdefs.h - <<_ACEOF >conftest.c - #include + #include int main (void) { - struct bio bio; - bio.bi_iter.bi_sector = 0; + struct request_queue *q = NULL; + (void) blk_queue_max_segments(q, BLK_MAX_SEGMENTS); ; return 0; @@ -23119,7 +24341,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_BIO_BVEC_ITER 1" >>confdefs.h +$as_echo "#define HAVE_BLK_QUEUE_MAX_SEGMENTS 1" >>confdefs.h else @@ -23135,25 +24357,26 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether BIO_RW_FAILFAST_* are defined" >&5 -$as_echo_n "checking whether BIO_RW_FAILFAST_* are defined... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether get_disk_ro() is available" >&5 +$as_echo_n "checking whether get_disk_ro() is available... " >&6; } + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}" cat confdefs.h - <<_ACEOF >conftest.c - #include + #include int main (void) { - int flags __attribute__ ((unused)); - flags = ((1 << BIO_RW_FAILFAST_DEV) | - (1 << BIO_RW_FAILFAST_TRANSPORT) | - (1 << BIO_RW_FAILFAST_DRIVER)); + struct gendisk *disk = NULL; + (void) get_disk_ro(disk); ; return 0; @@ -23187,7 +24410,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_BIO_RW_FAILFAST_DTD 1" >>confdefs.h +$as_echo "#define HAVE_GET_DISK_RO 1" >>confdefs.h else @@ -23203,23 +24426,23 @@ fi rm -Rf build + EXTRA_KCFLAGS="$tmp_flags" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether get_gendisk() is available" >&5 +$as_echo_n "checking whether get_gendisk() is available... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether REQ_FAILFAST_MASK is defined" >&5 -$as_echo_n "checking whether REQ_FAILFAST_MASK is defined... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include int main (void) { - int flags __attribute__ ((unused)); - flags = REQ_FAILFAST_MASK; + get_gendisk(0, NULL); ; return 0; @@ -23249,45 +24472,83 @@ _ACEOF ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : + rc=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + rc=1 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -$as_echo "#define HAVE_REQ_FAILFAST_MASK 1" >>confdefs.h +fi + rm -Rf build -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + if test $rc -ne 0; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + else + if test "x$enable_linux_builtin" != xyes; then + + grep -q -E '[[:space:]]get_gendisk[[:space:]]' \ + $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null + rc=$? + if test $rc -ne 0; then + export=0 + for file in block/genhd.c; do + grep -q -E "EXPORT_SYMBOL.*(get_gendisk)" \ + "$LINUX/$file" 2>/dev/null + rc=$? + if test $rc -eq 0; then + export=1 + break; + fi + done + if test $export -eq 0; then : + rc=1 + else : + rc=0 + fi + else : + rc=0 + fi + + fi + if test $rc -ne 0; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } -fi - rm -Rf build + else : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +$as_echo "#define HAVE_GET_GENDISK 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether bio_end_io_t wants 1 arg" >&5 -$as_echo_n "checking whether bio_end_io_t wants 1 arg... " >&6; } + fi + fi -cat confdefs.h - <<_ACEOF >conftest.c + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ql->discard_granularity is available" >&5 +$as_echo_n "checking whether ql->discard_granularity is available... " >&6; } - #include - void wanted_end_io(struct bio *bio) { return; } +cat confdefs.h - <<_ACEOF >conftest.c - bio_end_io_t *end_io __attribute__ ((unused)) = wanted_end_io; + + #include int main (void) { + struct queue_limits ql __attribute__ ((unused)); + + ql.discard_granularity = 0; ; return 0; @@ -23321,7 +24582,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_1ARG_BIO_END_IO_T 1" >>confdefs.h +$as_echo "#define HAVE_DISCARD_GRANULARITY 1" >>confdefs.h else @@ -23339,21 +24600,34 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether BIO_RW_BARRIER is defined" >&5 -$as_echo_n "checking whether BIO_RW_BARRIER is defined... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether super_block uses const struct xattr_handler" >&5 +$as_echo_n "checking whether super_block uses const struct xattr_handler... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include + #include + + const struct xattr_handler xattr_test_handler = { + .prefix = "test", + .get = NULL, + .set = NULL, + }; + + const struct xattr_handler *xattr_handlers[] = { + &xattr_test_handler, + }; + + const struct super_block sb __attribute__ ((unused)) = { + .s_xattr = xattr_handlers, + }; int main (void) { - int flags __attribute__ ((unused)); - flags = BIO_RW_BARRIER; ; return 0; @@ -23387,7 +24661,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_BIO_RW_BARRIER 1" >>confdefs.h +$as_echo "#define HAVE_CONST_XATTR_HANDLER 1" >>confdefs.h else @@ -23405,21 +24679,27 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether BIO_RW_DISCARD is defined" >&5 -$as_echo_n "checking whether BIO_RW_DISCARD is defined... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->get() wants xattr_handler" >&5 +$as_echo_n "checking whether xattr_handler->get() wants xattr_handler... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include + + int get(const struct xattr_handler *handler, + struct dentry *dentry, const char *name, + void *buffer, size_t size) { return 0; } + static const struct xattr_handler + xops __attribute__ ((unused)) = { + .get = get, + }; int main (void) { - int flags __attribute__ ((unused)); - flags = BIO_RW_DISCARD; ; return 0; @@ -23453,41 +24733,36 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_BIO_RW_DISCARD 1" >>confdefs.h +$as_echo "#define HAVE_XATTR_GET_HANDLER 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - - - -fi - rm -Rf build - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether blk_queue_flush() is available" >&5 -$as_echo_n "checking whether blk_queue_flush() is available... " >&6; } - tmp_flags="$EXTRA_KCFLAGS" - EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->get() wants dentry" >&5 +$as_echo_n "checking whether xattr_handler->get() wants dentry... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include + + int get(struct dentry *dentry, const char *name, + void *buffer, size_t size, int handler_flags) + { return 0; } + static const struct xattr_handler + xops __attribute__ ((unused)) = { + .get = get, + }; int main (void) { - struct request_queue *q = NULL; - (void) blk_queue_flush(q, REQ_FLUSH); ; return 0; @@ -23518,44 +24793,38 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_BLK_QUEUE_FLUSH 1" >>confdefs.h +$as_echo "#define HAVE_XATTR_GET_DENTRY 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - - - -fi - rm -Rf build - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether blk_queue_flush() is GPL-only" >&5 -$as_echo_n "checking whether blk_queue_flush() is GPL-only... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->get() wants inode" >&5 +$as_echo_n "checking whether xattr_handler->get() wants inode... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include - #include + #include - MODULE_LICENSE("$ZFS_META_LICENSE"); + int get(struct inode *ip, const char *name, + void *buffer, size_t size) { return 0; } + static const struct xattr_handler + xops __attribute__ ((unused)) = { + .get = get, + }; int main (void) { - struct request_queue *q = NULL; - (void) blk_queue_flush(q, REQ_FLUSH); ; return 0; @@ -23586,17 +24855,30 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_XATTR_GET_INODE 1" >>confdefs.h + else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + as_fn_error $? "no; please file a bug report" "$LINENO" 5 + + + +fi + rm -Rf build + + + + + +fi + rm -Rf build -$as_echo "#define HAVE_BLK_QUEUE_FLUSH_GPL_ONLY 1" >>confdefs.h @@ -23605,26 +24887,30 @@ fi rm -Rf build - EXTRA_KCFLAGS="$tmp_flags" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether blk_queue_max_hw_sectors() is available" >&5 -$as_echo_n "checking whether blk_queue_max_hw_sectors() is available... " >&6; } - tmp_flags="$EXTRA_KCFLAGS" - EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->set() wants xattr_handler" >&5 +$as_echo_n "checking whether xattr_handler->set() wants xattr_handler... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include + + int set(const struct xattr_handler *handler, + struct dentry *dentry, const char *name, + const void *buffer, size_t size, int flags) + { return 0; } + static const struct xattr_handler + xops __attribute__ ((unused)) = { + .set = set, + }; int main (void) { - struct request_queue *q = NULL; - (void) blk_queue_max_hw_sectors(q, BLK_SAFE_MAX_SECTORS); ; return 0; @@ -23658,42 +24944,36 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_BLK_QUEUE_MAX_HW_SECTORS 1" >>confdefs.h +$as_echo "#define HAVE_XATTR_SET_HANDLER 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - - - -fi - rm -Rf build - - - EXTRA_KCFLAGS="$tmp_flags" - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether blk_queue_max_segments() is available" >&5 -$as_echo_n "checking whether blk_queue_max_segments() is available... " >&6; } - tmp_flags="$EXTRA_KCFLAGS" - EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->set() wants dentry" >&5 +$as_echo_n "checking whether xattr_handler->set() wants dentry... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include + + int set(struct dentry *dentry, const char *name, + const void *buffer, size_t size, int flags, + int handler_flags) { return 0; } + static const struct xattr_handler + xops __attribute__ ((unused)) = { + .set = set, + }; int main (void) { - struct request_queue *q = NULL; - (void) blk_queue_max_segments(q, BLK_MAX_SEGMENTS); ; return 0; @@ -23724,45 +25004,39 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_BLK_QUEUE_MAX_SEGMENTS 1" >>confdefs.h +$as_echo "#define HAVE_XATTR_SET_DENTRY 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - - - -fi - rm -Rf build - - - EXTRA_KCFLAGS="$tmp_flags" - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether get_disk_ro() is available" >&5 -$as_echo_n "checking whether get_disk_ro() is available... " >&6; } - tmp_flags="$EXTRA_KCFLAGS" - EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->set() wants inode" >&5 +$as_echo_n "checking whether xattr_handler->set() wants inode... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include + + int set(struct inode *ip, const char *name, + const void *buffer, size_t size, int flags) + { return 0; } + static const struct xattr_handler + xops __attribute__ ((unused)) = { + .set = set, + }; int main (void) { - struct gendisk *disk = NULL; - (void) get_disk_ro(disk); ; return 0; @@ -23793,18 +25067,17 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_GET_DISK_RO 1" >>confdefs.h +$as_echo "#define HAVE_XATTR_SET_INODE 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + as_fn_error $? "no; please file a bug report" "$LINENO" 5 @@ -23812,23 +25085,41 @@ fi rm -Rf build - EXTRA_KCFLAGS="$tmp_flags" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether get_gendisk() is available" >&5 -$as_echo_n "checking whether get_gendisk() is available... " >&6; } + + +fi + rm -Rf build + + +fi + rm -Rf build + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->list() wants simple" >&5 +$as_echo_n "checking whether xattr_handler->list() wants simple... " >&6; } + + cat confdefs.h - <<_ACEOF >conftest.c - #include + #include + + bool list(struct dentry *dentry) { return 0; } + static const struct xattr_handler + xops __attribute__ ((unused)) = { + .list = list, + }; int main (void) { - get_gendisk(0, NULL); ; return 0; @@ -23858,83 +25149,40 @@ _ACEOF ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - rc=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - rc=1 - - -fi - rm -Rf build - - - if test $rc -ne 0; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - else - if test "x$enable_linux_builtin" != xyes; then - - grep -q -E '[[:space:]]get_gendisk[[:space:]]' \ - $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null - rc=$? - if test $rc -ne 0; then - export=0 - for file in block/genhd.c; do - grep -q -E "EXPORT_SYMBOL.*(get_gendisk)" \ - "$LINUX/$file" 2>/dev/null - rc=$? - if test $rc -eq 0; then - export=1 - break; - fi - done - if test $export -eq 0; then : - rc=1 - else : - rc=0 - fi - else : - rc=0 - fi - - fi - if test $rc -ne 0; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - else : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_GET_GENDISK 1" >>confdefs.h - - - fi - fi +$as_echo "#define HAVE_XATTR_LIST_SIMPLE 1" >>confdefs.h +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ql->discard_granularity is available" >&5 -$as_echo_n "checking whether ql->discard_granularity is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->list() wants xattr_handler" >&5 +$as_echo_n "checking whether xattr_handler->list() wants xattr_handler... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include + + size_t list(const struct xattr_handler *handler, + struct dentry *dentry, char *list, size_t list_size, + const char *name, size_t name_len) { return 0; } + static const struct xattr_handler + xops __attribute__ ((unused)) = { + .list = list, + }; int main (void) { - struct queue_limits ql __attribute__ ((unused)); - - ql.discard_granularity = 0; ; return 0; @@ -23965,49 +25213,35 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_DISCARD_GRANULARITY 1" >>confdefs.h +$as_echo "#define HAVE_XATTR_LIST_HANDLER 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - - - -fi - rm -Rf build - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether super_block uses const struct xattr_hander" >&5 -$as_echo_n "checking whether super_block uses const struct xattr_hander... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->list() wants dentry" >&5 +$as_echo_n "checking whether xattr_handler->list() wants dentry... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include - #include - - const struct xattr_handler xattr_test_handler = { - .prefix = "test", - .get = NULL, - .set = NULL, - }; - - const struct xattr_handler *xattr_handlers[] = { - &xattr_test_handler, - }; + #include - const struct super_block sb __attribute__ ((unused)) = { - .s_xattr = xattr_handlers, - }; + size_t list(struct dentry *dentry, + char *list, size_t list_size, + const char *name, size_t name_len, + int handler_flags) { return 0; } + static const struct xattr_handler + xops __attribute__ ((unused)) = { + .list = list, + }; int main (void) @@ -24043,42 +25277,34 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_CONST_XATTR_HANDLER 1" >>confdefs.h +$as_echo "#define HAVE_XATTR_LIST_DENTRY 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - - - -fi - rm -Rf build - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->get() wants dentry" >&5 -$as_echo_n "checking whether xattr_handler->get() wants dentry... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->list() wants inode" >&5 +$as_echo_n "checking whether xattr_handler->list() wants inode... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include - int get(struct dentry *dentry, const char *name, - void *buffer, size_t size, int handler_flags) { return 0; } - static const struct xattr_handler - xops __attribute__ ((unused)) = { - .get = get, - }; + size_t list(struct inode *ip, char *lst, + size_t list_size, const char *name, + size_t name_len) { return 0; } + static const struct xattr_handler + xops __attribute__ ((unused)) = { + .list = list, + }; int main (void) @@ -24114,38 +25340,62 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_DENTRY_XATTR_GET 1" >>confdefs.h +$as_echo "#define HAVE_XATTR_LIST_INODE 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->get() wants xattr_handler" >&5 -$as_echo_n "checking whether xattr_handler->get() wants xattr_handler... " >&6; } + as_fn_error $? "no; please file a bug report" "$LINENO" 5 -cat confdefs.h - <<_ACEOF >conftest.c + +fi + rm -Rf build - #include - int get(const struct xattr_handler *handler, struct dentry *dentry, - const char *name, void *buffer, size_t size) { return 0; } - static const struct xattr_handler - xops __attribute__ ((unused)) = { - .get = get, - }; + + +fi + rm -Rf build + + + + + +fi + rm -Rf build + + + + + +fi + rm -Rf build + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether inode_owner_or_capable() exists" >&5 +$as_echo_n "checking whether inode_owner_or_capable() exists... " >&6; } + + +cat confdefs.h - <<_ACEOF >conftest.c + + + #include int main (void) { + struct inode *ip = NULL; + (void) inode_owner_or_capable(ip); ; return 0; @@ -24176,55 +25426,34 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_HANDLER_XATTR_GET 1" >>confdefs.h +$as_echo "#define HAVE_INODE_OWNER_OR_CAPABLE 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - - - -fi - rm -Rf build - - - - - -fi - rm -Rf build - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->set() wants dentry" >&5 -$as_echo_n "checking whether xattr_handler->set() wants dentry... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether is_owner_or_cap() exists" >&5 +$as_echo_n "checking whether is_owner_or_cap() exists... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include - - int set(struct dentry *dentry, const char *name, - const void *buffer, size_t size, int flags, - int handler_flags) { return 0; } - static const struct xattr_handler - xops __attribute__ ((unused)) = { - .set = set, - }; + #include + #include int main (void) { + struct inode *ip = NULL; + (void) is_owner_or_cap(ip); ; return 0; @@ -24255,38 +25484,50 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_DENTRY_XATTR_SET 1" >>confdefs.h +$as_echo "#define HAVE_IS_OWNER_OR_CAP 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->set() wants xattr_handler" >&5 -$as_echo_n "checking whether xattr_handler->set() wants xattr_handler... " >&6; } + as_fn_error $? "no - Please file a bug report at + https://github.com/zfsonlinux/zfs/issues/new" "$LINENO" 5 -cat confdefs.h - <<_ACEOF >conftest.c + +fi + rm -Rf build + + + + + +fi + rm -Rf build - #include - int set(const struct xattr_handler *handler, struct dentry *dentry, - const char *name, const void *buffer, size_t size, int flags) { return 0; } - static const struct xattr_handler - xops __attribute__ ((unused)) = { - .set = set, - }; + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether posix_acl_from_xattr() needs user_ns" >&5 +$as_echo_n "checking whether posix_acl_from_xattr() needs user_ns... " >&6; } + + +cat confdefs.h - <<_ACEOF >conftest.c + + + #include + #include + #include int main (void) { + posix_acl_from_xattr(&init_user_ns, NULL, 0); ; return 0; @@ -24317,17 +25558,17 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_HANDLER_XATTR_SET 1" >>confdefs.h +$as_echo "#define HAVE_POSIX_ACL_FROM_XATTR_USERNS 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -24338,34 +25579,23 @@ fi - -fi - rm -Rf build - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->list() wants dentry" >&5 -$as_echo_n "checking whether xattr_handler->list() wants dentry... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether posix_acl_release() is available" >&5 +$as_echo_n "checking whether posix_acl_release() is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include - - size_t list(struct dentry *dentry, char *list, size_t list_size, - const char *name, size_t name_len, int handler_flags) - { return 0; } - static const struct xattr_handler - xops __attribute__ ((unused)) = { - .list = list, - }; + #include + #include + #include int main (void) { + struct posix_acl* tmp = posix_acl_alloc(1, 0); + posix_acl_release(tmp); ; return 0; @@ -24399,7 +25629,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_DENTRY_XATTR_LIST 1" >>confdefs.h +$as_echo "#define HAVE_POSIX_ACL_RELEASE 1" >>confdefs.h else @@ -24408,26 +25638,33 @@ sed 's/^/| /' conftest.$ac_ext >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xattr_handler->list() wants xattr_handler" >&5 -$as_echo_n "checking whether xattr_handler->list() wants xattr_handler... " >&6; } + + + +fi + rm -Rf build + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether posix_acl_release() is GPL-only" >&5 +$as_echo_n "checking whether posix_acl_release() is GPL-only... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include + #include + #include + #include - size_t list(const struct xattr_handler *handler, struct dentry *dentry, - char *list, size_t list_size, const char *name, size_t name_len) { return 0; } - static const struct xattr_handler - xops __attribute__ ((unused)) = { - .list = list, - }; + MODULE_LICENSE("$ZFS_META_LICENSE"); int main (void) { + struct posix_acl* tmp = posix_acl_alloc(1, 0); + posix_acl_release(tmp); ; return 0; @@ -24458,24 +25695,17 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_HANDLER_XATTR_LIST 1" >>confdefs.h - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - - -fi - rm -Rf build + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +$as_echo "#define HAVE_POSIX_ACL_RELEASE_GPL_ONLY 1" >>confdefs.h @@ -24486,21 +25716,21 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether inode_owner_or_capable() exists" >&5 -$as_echo_n "checking whether inode_owner_or_capable() exists... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether posix_acl_chmod exists" >&5 +$as_echo_n "checking whether posix_acl_chmod exists... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c #include + #include int main (void) { - struct inode *ip = NULL; - (void) inode_owner_or_capable(ip); + posix_acl_chmod(NULL, 0, 0) ; return 0; @@ -24534,7 +25764,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_INODE_OWNER_OR_CAPABLE 1" >>confdefs.h +$as_echo "#define HAVE_POSIX_ACL_CHMOD 1" >>confdefs.h else @@ -24543,22 +25773,29 @@ sed 's/^/| /' conftest.$ac_ext >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether is_owner_or_cap() exists" >&5 -$as_echo_n "checking whether is_owner_or_cap() exists... " >&6; } + + + +fi + rm -Rf build + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether __posix_acl_chmod exists" >&5 +$as_echo_n "checking whether __posix_acl_chmod exists... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include - #include + #include + #include int main (void) { - struct inode *ip = NULL; - (void) is_owner_or_cap(ip); + __posix_acl_chmod(NULL, 0, 0) ; return 0; @@ -24589,25 +25826,18 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_IS_OWNER_OR_CAP 1" >>confdefs.h +$as_echo "#define HAVE___POSIX_ACL_CHMOD 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - as_fn_error $? "no - Please file a bug report at - https://github.com/zfsonlinux/zfs/issues/new" "$LINENO" 5 - - - -fi - rm -Rf build - - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } @@ -24617,22 +25847,22 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether posix_acl_from_xattr() needs user_ns" >&5 -$as_echo_n "checking whether posix_acl_from_xattr() needs user_ns... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether inode has i_acl and i_default_acl" >&5 +$as_echo_n "checking whether inode has i_acl and i_default_acl... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include #include - #include int main (void) { - posix_acl_from_xattr(&init_user_ns, NULL, 0); + struct inode ino; + ino.i_acl = NULL; + ino.i_default_acl = NULL; ; return 0; @@ -24666,7 +25896,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_POSIX_ACL_FROM_XATTR_USERNS 1" >>confdefs.h +$as_echo "#define HAVE_POSIX_ACL_CACHING 1" >>confdefs.h else @@ -24684,14 +25914,13 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether posix_acl_release() is available" >&5 -$as_echo_n "checking whether posix_acl_release() is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether posix_acl_equiv_mode() wants umode_t" >&5 +$as_echo_n "checking whether posix_acl_equiv_mode() wants umode_t... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include #include #include @@ -24699,8 +25928,8 @@ int main (void) { - struct posix_acl* tmp = posix_acl_alloc(1, 0); - posix_acl_release(tmp); + umode_t tmp; + posix_acl_equiv_mode(NULL,&tmp); ; return 0; @@ -24734,7 +25963,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_POSIX_ACL_RELEASE 1" >>confdefs.h +$as_echo "#define HAVE_POSIX_ACL_EQUIV_MODE_UMODE_T 1" >>confdefs.h else @@ -24751,25 +25980,27 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether posix_acl_release() is GPL-only" >&5 -$as_echo_n "checking whether posix_acl_release() is GPL-only... " >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->permission() exists" >&5 +$as_echo_n "checking whether iops->permission() exists... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include #include - #include - MODULE_LICENSE("$ZFS_META_LICENSE"); + int permission_fn(struct inode *inode, int mask) { return 0; } + + static const struct inode_operations + iops __attribute__ ((unused)) = { + .permission = permission_fn, + }; int main (void) { - struct posix_acl* tmp = posix_acl_alloc(1, 0); - posix_acl_release(tmp); ; return 0; @@ -24800,18 +26031,18 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_PERMISSION 1" >>confdefs.h + else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_POSIX_ACL_RELEASE_GPL_ONLY 1" >>confdefs.h - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } @@ -24821,21 +26052,27 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether posix_acl_chmod exists" >&5 -$as_echo_n "checking whether posix_acl_chmod exists... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->permission() wants nameidata" >&5 +$as_echo_n "checking whether iops->permission() wants nameidata... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c #include - #include + + int permission_fn(struct inode *inode, int mask, + struct nameidata *nd) { return 0; } + + static const struct inode_operations + iops __attribute__ ((unused)) = { + .permission = permission_fn, + }; int main (void) { - posix_acl_chmod(NULL, 0, 0) ; return 0; @@ -24869,7 +26106,10 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_POSIX_ACL_CHMOD 1" >>confdefs.h +$as_echo "#define HAVE_PERMISSION 1" >>confdefs.h + + +$as_echo "#define HAVE_PERMISSION_WITH_NAMEIDATA 1" >>confdefs.h else @@ -24886,21 +26126,27 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether __posix_acl_chmod exists" >&5 -$as_echo_n "checking whether __posix_acl_chmod exists... " >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->check_acl() exists" >&5 +$as_echo_n "checking whether iops->check_acl() exists... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c #include - #include + + int check_acl_fn(struct inode *inode, int mask) { return 0; } + + static const struct inode_operations + iops __attribute__ ((unused)) = { + .check_acl = check_acl_fn, + }; int main (void) { - __posix_acl_chmod(NULL, 0, 0) ; return 0; @@ -24934,7 +26180,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE___POSIX_ACL_CHMOD 1" >>confdefs.h +$as_echo "#define HAVE_CHECK_ACL 1" >>confdefs.h else @@ -24952,8 +26198,8 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether inode has i_acl and i_default_acl" >&5 -$as_echo_n "checking whether inode has i_acl and i_default_acl... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->check_acl() wants flags" >&5 +$as_echo_n "checking whether iops->check_acl() wants flags... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -24961,13 +26207,18 @@ cat confdefs.h - <<_ACEOF >conftest.c #include + int check_acl_fn(struct inode *inode, int mask, + unsigned int flags) { return 0; } + + static const struct inode_operations + iops __attribute__ ((unused)) = { + .check_acl = check_acl_fn, + }; + int main (void) { - struct inode ino; - ino.i_acl = NULL; - ino.i_default_acl = NULL; ; return 0; @@ -25001,7 +26252,10 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_POSIX_ACL_CACHING 1" >>confdefs.h +$as_echo "#define HAVE_CHECK_ACL 1" >>confdefs.h + + +$as_echo "#define HAVE_CHECK_ACL_WITH_FLAGS 1" >>confdefs.h else @@ -25019,22 +26273,27 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether posix_acl_equiv_mode() wants umode_t" >&5 -$as_echo_n "checking whether posix_acl_equiv_mode() wants umode_t... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->get_acl() exists" >&5 +$as_echo_n "checking whether iops->get_acl() exists... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c #include - #include + + struct posix_acl *get_acl_fn(struct inode *inode, int type) + { return NULL; } + + static const struct inode_operations + iops __attribute__ ((unused)) = { + .get_acl = get_acl_fn, + }; int main (void) { - umode_t tmp; - posix_acl_equiv_mode(NULL,&tmp); ; return 0; @@ -25068,7 +26327,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_POSIX_ACL_EQUIV_MODE_UMODE_T 1" >>confdefs.h +$as_echo "#define HAVE_GET_ACL 1" >>confdefs.h else @@ -25086,8 +26345,8 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->permission() exists" >&5 -$as_echo_n "checking whether iops->permission() exists... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether current_umask exists" >&5 +$as_echo_n "checking whether current_umask exists... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -25095,17 +26354,11 @@ cat confdefs.h - <<_ACEOF >conftest.c #include - int permission_fn(struct inode *inode, int mask) { return 0; } - - static const struct inode_operations - iops __attribute__ ((unused)) = { - .permission = permission_fn, - }; - int main (void) { + current_umask(); ; return 0; @@ -25139,7 +26392,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_PERMISSION 1" >>confdefs.h +$as_echo "#define HAVE_CURRENT_UMASK 1" >>confdefs.h else @@ -25157,8 +26410,9 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->permission() wants nameidata" >&5 -$as_echo_n "checking whether iops->permission() wants nameidata... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sops->show_options() wants dentry" >&5 +$as_echo_n "checking whether sops->show_options() wants dentry... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.c @@ -25166,12 +26420,9 @@ cat confdefs.h - <<_ACEOF >conftest.c #include - int permission_fn(struct inode *inode, int mask, - struct nameidata *nd) { return 0; } - - static const struct inode_operations - iops __attribute__ ((unused)) = { - .permission = permission_fn, + int show_options (struct seq_file * x, struct dentry * y) { return 0; }; + static struct super_operations sops __attribute__ ((unused)) = { + .show_options = show_options, }; int @@ -25211,10 +26462,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_PERMISSION 1" >>confdefs.h - - -$as_echo "#define HAVE_PERMISSION_WITH_NAMEIDATA 1" >>confdefs.h +$as_echo "#define HAVE_SHOW_OPTIONS_WITH_DENTRY 1" >>confdefs.h else @@ -25232,8 +26480,8 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->check_acl() exists" >&5 -$as_echo_n "checking whether iops->check_acl() exists... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether file_inode() is available" >&5 +$as_echo_n "checking whether file_inode() is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -25241,17 +26489,12 @@ cat confdefs.h - <<_ACEOF >conftest.c #include - int check_acl_fn(struct inode *inode, int mask) { return 0; } - - static const struct inode_operations - iops __attribute__ ((unused)) = { - .check_acl = check_acl_fn, - }; - int main (void) { + struct file *f = NULL; + file_inode(f); ; return 0; @@ -25285,7 +26528,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_CHECK_ACL 1" >>confdefs.h +$as_echo "#define HAVE_FILE_INODE 1" >>confdefs.h else @@ -25303,8 +26546,9 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->check_acl() wants flags" >&5 -$as_echo_n "checking whether iops->check_acl() wants flags... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fops->fsync() wants" >&5 +$as_echo_n "checking whether fops->fsync() wants... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.c @@ -25312,12 +26556,12 @@ cat confdefs.h - <<_ACEOF >conftest.c #include - int check_acl_fn(struct inode *inode, int mask, - unsigned int flags) { return 0; } + int test_fsync(struct file *f, struct dentry *dentry, int x) + { return 0; } - static const struct inode_operations - iops __attribute__ ((unused)) = { - .check_acl = check_acl_fn, + static const struct file_operations + fops __attribute__ ((unused)) = { + .fsync = test_fsync, }; int @@ -25354,21 +26598,16 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define HAVE_CHECK_ACL 1" >>confdefs.h - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: dentry" >&5 +$as_echo "dentry" >&6; } -$as_echo "#define HAVE_CHECK_ACL_WITH_FLAGS 1" >>confdefs.h +$as_echo "#define HAVE_FSYNC_WITH_DENTRY 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } @@ -25378,8 +26617,6 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->get_acl() exists" >&5 -$as_echo_n "checking whether iops->get_acl() exists... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -25387,12 +26624,11 @@ cat confdefs.h - <<_ACEOF >conftest.c #include - struct posix_acl *get_acl_fn(struct inode *inode, int type) - { return NULL; } + int test_fsync(struct file *f, int x) { return 0; } - static const struct inode_operations - iops __attribute__ ((unused)) = { - .get_acl = get_acl_fn, + static const struct file_operations + fops __attribute__ ((unused)) = { + .fsync = test_fsync, }; int @@ -25429,18 +26665,16 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no dentry" >&5 +$as_echo "no dentry" >&6; } -$as_echo "#define HAVE_GET_ACL 1" >>confdefs.h +$as_echo "#define HAVE_FSYNC_WITHOUT_DENTRY 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } @@ -25450,8 +26684,6 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether current_umask exists" >&5 -$as_echo_n "checking whether current_umask exists... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -25459,11 +26691,18 @@ cat confdefs.h - <<_ACEOF >conftest.c #include + int test_fsync(struct file *f, loff_t a, loff_t b, int c) + { return 0; } + + static const struct file_operations + fops __attribute__ ((unused)) = { + .fsync = test_fsync, + }; + int main (void) { - current_umask(); ; return 0; @@ -25494,18 +26733,16 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: range" >&5 +$as_echo "range" >&6; } -$as_echo "#define HAVE_CURRENT_UMASK 1" >>confdefs.h +$as_echo "#define HAVE_FSYNC_RANGE 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } @@ -25515,19 +26752,18 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sops->show_options() wants dentry" >&5 -$as_echo_n "checking whether sops->show_options() wants dentry... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sops->evict_inode() exists" >&5 +$as_echo_n "checking whether sops->evict_inode() exists... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c #include - - int show_options (struct seq_file * x, struct dentry * y) { return 0; }; + void evict_inode (struct inode * t) { return; } static struct super_operations sops __attribute__ ((unused)) = { - .show_options = show_options, + .evict_inode = evict_inode, }; int @@ -25567,7 +26803,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_SHOW_OPTIONS_WITH_DENTRY 1" >>confdefs.h +$as_echo "#define HAVE_EVICT_INODE 1" >>confdefs.h else @@ -25585,8 +26821,8 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether file_inode() is available" >&5 -$as_echo_n "checking whether file_inode() is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sops->dirty_inode() wants flags" >&5 +$as_echo_n "checking whether sops->dirty_inode() wants flags... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -25594,12 +26830,17 @@ cat confdefs.h - <<_ACEOF >conftest.c #include + void dirty_inode(struct inode *a, int b) { return; } + + static const struct super_operations + sops __attribute__ ((unused)) = { + .dirty_inode = dirty_inode, + }; + int main (void) { - struct file *f = NULL; - file_inode(f); ; return 0; @@ -25633,7 +26874,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_FILE_INODE 1" >>confdefs.h +$as_echo "#define HAVE_DIRTY_INODE_WITH_FLAGS 1" >>confdefs.h else @@ -25651,9 +26892,8 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fops->fsync() wants" >&5 -$as_echo_n "checking whether fops->fsync() wants... " >&6; } - + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sops->nr_cached_objects() exists" >&5 +$as_echo_n "checking whether sops->nr_cached_objects() exists... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -25661,12 +26901,11 @@ cat confdefs.h - <<_ACEOF >conftest.c #include - int test_fsync(struct file *f, struct dentry *dentry, int x) - { return 0; } + int nr_cached_objects(struct super_block *sb) { return 0; } - static const struct file_operations - fops __attribute__ ((unused)) = { - .fsync = test_fsync, + static const struct super_operations + sops __attribute__ ((unused)) = { + .nr_cached_objects = nr_cached_objects, }; int @@ -25703,16 +26942,18 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: dentry" >&5 -$as_echo "dentry" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -$as_echo "#define HAVE_FSYNC_WITH_DENTRY 1" >>confdefs.h +$as_echo "#define HAVE_NR_CACHED_OBJECTS 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } @@ -25722,6 +26963,8 @@ fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sops->free_cached_objects() exists" >&5 +$as_echo_n "checking whether sops->free_cached_objects() exists... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -25729,11 +26972,12 @@ cat confdefs.h - <<_ACEOF >conftest.c #include - int test_fsync(struct file *f, int x) { return 0; } + void free_cached_objects(struct super_block *sb, int x) + { return; } - static const struct file_operations - fops __attribute__ ((unused)) = { - .fsync = test_fsync, + static const struct super_operations + sops __attribute__ ((unused)) = { + .free_cached_objects = free_cached_objects, }; int @@ -25770,16 +27014,18 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no dentry" >&5 -$as_echo "no dentry" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -$as_echo "#define HAVE_FSYNC_WITHOUT_DENTRY 1" >>confdefs.h +$as_echo "#define HAVE_FREE_CACHED_OBJECTS 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } @@ -25790,18 +27036,21 @@ fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fops->fallocate() exists" >&5 +$as_echo_n "checking whether fops->fallocate() exists... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.c #include - int test_fsync(struct file *f, loff_t a, loff_t b, int c) - { return 0; } + long test_fallocate(struct file *file, int mode, + loff_t offset, loff_t len) { return 0; } static const struct file_operations fops __attribute__ ((unused)) = { - .fsync = test_fsync, + .fallocate = test_fallocate, }; int @@ -25838,16 +27087,18 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: range" >&5 -$as_echo "range" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -$as_echo "#define HAVE_FSYNC_RANGE 1" >>confdefs.h +$as_echo "#define HAVE_FILE_FALLOCATE 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } @@ -25857,18 +27108,21 @@ fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sops->evict_inode() exists" >&5 -$as_echo_n "checking whether sops->evict_inode() exists... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->fallocate() exists" >&5 +$as_echo_n "checking whether iops->fallocate() exists... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c #include - void evict_inode (struct inode * t) { return; } - static struct super_operations sops __attribute__ ((unused)) = { - .evict_inode = evict_inode, + + long test_fallocate(struct inode *inode, int mode, + loff_t offset, loff_t len) { return 0; } + + static const struct inode_operations + fops __attribute__ ((unused)) = { + .fallocate = test_fallocate, }; int @@ -25908,7 +27162,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_EVICT_INODE 1" >>confdefs.h +$as_echo "#define HAVE_INODE_FALLOCATE 1" >>confdefs.h else @@ -25926,8 +27180,9 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sops->dirty_inode() wants flags" >&5 -$as_echo_n "checking whether sops->dirty_inode() wants flags... " >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->create()/mkdir()/mknod() take umode_t" >&5 +$as_echo_n "checking whether iops->create()/mkdir()/mknod() take umode_t... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -25935,11 +27190,12 @@ cat confdefs.h - <<_ACEOF >conftest.c #include - void dirty_inode(struct inode *a, int b) { return; } + int mkdir(struct inode *inode, struct dentry *dentry, + umode_t umode) { return 0; } - static const struct super_operations - sops __attribute__ ((unused)) = { - .dirty_inode = dirty_inode, + static const struct inode_operations + iops __attribute__ ((unused)) = { + .mkdir = mkdir, }; int @@ -25979,7 +27235,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_DIRTY_INODE_WITH_FLAGS 1" >>confdefs.h +$as_echo "#define HAVE_MKDIR_UMODE_T 1" >>confdefs.h else @@ -25997,8 +27253,8 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sops->nr_cached_objects() exists" >&5 -$as_echo_n "checking whether sops->nr_cached_objects() exists... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->lookup() passes nameidata" >&5 +$as_echo_n "checking whether iops->lookup() passes nameidata... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -26006,11 +27262,13 @@ cat confdefs.h - <<_ACEOF >conftest.c #include - int nr_cached_objects(struct super_block *sb) { return 0; } + struct dentry *inode_lookup(struct inode *inode, + struct dentry *dentry, struct nameidata *nidata) + { return NULL; } - static const struct super_operations - sops __attribute__ ((unused)) = { - .nr_cached_objects = nr_cached_objects, + static const struct inode_operations iops + __attribute__ ((unused)) = { + .lookup = inode_lookup, }; int @@ -26050,7 +27308,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_NR_CACHED_OBJECTS 1" >>confdefs.h +$as_echo "#define HAVE_LOOKUP_NAMEIDATA 1" >>confdefs.h else @@ -26068,8 +27326,8 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sops->free_cached_objects() exists" >&5 -$as_echo_n "checking whether sops->free_cached_objects() exists... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->create() passes nameidata" >&5 +$as_echo_n "checking whether iops->create() passes nameidata... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -26077,12 +27335,17 @@ cat confdefs.h - <<_ACEOF >conftest.c #include - void free_cached_objects(struct super_block *sb, int x) - { return; } + #ifdef HAVE_MKDIR_UMODE_T + int inode_create(struct inode *inode ,struct dentry *dentry, + umode_t umode, struct nameidata *nidata) { return 0; } + #else + int inode_create(struct inode *inode,struct dentry *dentry, + int umode, struct nameidata * nidata) { return 0; } + #endif - static const struct super_operations - sops __attribute__ ((unused)) = { - .free_cached_objects = free_cached_objects, + static const struct inode_operations + iops __attribute__ ((unused)) = { + .create = inode_create, }; int @@ -26122,7 +27385,7 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_FREE_CACHED_OBJECTS 1" >>confdefs.h +$as_echo "#define HAVE_CREATE_NAMEIDATA 1" >>confdefs.h else @@ -26140,22 +27403,19 @@ fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fops->fallocate() exists" >&5 -$as_echo_n "checking whether fops->fallocate() exists... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->get_link() passes delayed" >&5 +$as_echo_n "checking whether iops->get_link() passes delayed... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c #include - - long test_fallocate(struct file *file, int mode, - loff_t offset, loff_t len) { return 0; } - - static const struct file_operations - fops __attribute__ ((unused)) = { - .fallocate = test_fallocate, + const char *get_link(struct dentry *de, struct inode *ip, + struct delayed_call *done) { return "symlink"; } + static struct inode_operations + iops __attribute__ ((unused)) = { + .get_link = get_link, }; int @@ -26195,40 +27455,29 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_FILE_FALLOCATE 1" >>confdefs.h +$as_echo "#define HAVE_GET_LINK_DELAYED 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - - - -fi - rm -Rf build - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->fallocate() exists" >&5 -$as_echo_n "checking whether iops->fallocate() exists... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->get_link() passes cookie" >&5 +$as_echo_n "checking whether iops->get_link() passes cookie... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include - - long test_fallocate(struct inode *inode, int mode, - loff_t offset, loff_t len) { return 0; } - - static const struct inode_operations - fops __attribute__ ((unused)) = { - .fallocate = test_fallocate, - }; + #include + const char *get_link(struct dentry *de, struct + inode *ip, void **cookie) { return "symlink"; } + static struct inode_operations + iops __attribute__ ((unused)) = { + .get_link = get_link, + }; int main (void) @@ -26264,43 +27513,32 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_INODE_FALLOCATE 1" >>confdefs.h +$as_echo "#define HAVE_GET_LINK_COOKIE 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - - -fi - rm -Rf build - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->create()/mkdir()/mknod() take umode_t" >&5 -$as_echo_n "checking whether iops->create()/mkdir()/mknod() take umode_t... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->follow_link() passes cookie" >&5 +$as_echo_n "checking whether iops->follow_link() passes cookie... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c #include - - int mkdir(struct inode *inode, struct dentry *dentry, - umode_t umode) { return 0; } - - static const struct inode_operations + const char *follow_link(struct dentry *de, + void **cookie) { return "symlink"; } + static struct inode_operations iops __attribute__ ((unused)) = { - .mkdir = mkdir, + .follow_link = follow_link, }; int @@ -26340,41 +27578,29 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_MKDIR_UMODE_T 1" >>confdefs.h +$as_echo "#define HAVE_FOLLOW_LINK_COOKIE 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - - - -fi - rm -Rf build - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->lookup() passes nameidata" >&5 -$as_echo_n "checking whether iops->lookup() passes nameidata... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->follow_link() passes nameidata" >&5 +$as_echo_n "checking whether iops->follow_link() passes nameidata... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c #include - - struct dentry *inode_lookup(struct inode *inode, - struct dentry *dentry, struct nameidata *nidata) - { return NULL; } - - static const struct inode_operations iops - __attribute__ ((unused)) = { - .lookup = inode_lookup, - }; + void *follow_link(struct dentry *de, struct + nameidata *nd) { return (void *)NULL; } + static struct inode_operations + iops __attribute__ ((unused)) = { + .follow_link = follow_link, + }; int main (void) @@ -26410,18 +27636,17 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_LOOKUP_NAMEIDATA 1" >>confdefs.h +$as_echo "#define HAVE_FOLLOW_LINK_NAMEIDATA 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + as_fn_error $? "no; please file a bug report" "$LINENO" 5 @@ -26431,27 +27656,36 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->create() passes nameidata" >&5 -$as_echo_n "checking whether iops->create() passes nameidata... " >&6; } +fi + rm -Rf build -cat confdefs.h - <<_ACEOF >conftest.c - #include - #ifdef HAVE_MKDIR_UMODE_T - int inode_create(struct inode *inode ,struct dentry *dentry, - umode_t umode, struct nameidata *nidata) { return 0; } - #else - int inode_create(struct inode *inode,struct dentry *dentry, - int umode, struct nameidata * nidata) { return 0; } - #endif - static const struct inode_operations - iops __attribute__ ((unused)) = { - .create = inode_create, - }; + +fi + rm -Rf build + + + + + +fi + rm -Rf build + + + + + + +cat confdefs.h - <<_ACEOF >conftest.c + + + #if !defined(HAVE_GET_LINK_DELAYED) + #error "Expecting get_link() delayed done" + #endif int main (void) @@ -26487,40 +27721,28 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -$as_echo "#define HAVE_CREATE_NAMEIDATA 1" >>confdefs.h +$as_echo "#define HAVE_PUT_LINK_DELAYED 1" >>confdefs.h else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - - -fi - rm -Rf build - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->follow_link() passes nameidata" >&5 -$as_echo_n "checking whether iops->follow_link() passes nameidata... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->put_link() passes cookie" >&5 +$as_echo_n "checking whether iops->put_link() passes cookie... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include - const char *follow_link(struct dentry *de, void **cookie) - { return "symlink"; } - static struct inode_operations iops __attribute__ ((unused)) = { - .follow_link = follow_link, - }; + #include + void put_link(struct inode *ip, void *cookie) + { return; } + static struct inode_operations + iops __attribute__ ((unused)) = { + .put_link = put_link, + }; int main (void) @@ -26556,39 +27778,32 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_FOLLOW_LINK_NAMEIDATA 1" >>confdefs.h - - - - -fi - rm -Rf build - +$as_echo "#define HAVE_PUT_LINK_COOKIE 1" >>confdefs.h +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->put_link() passes nameidata" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iops->put_link() passes nameidata" >&5 $as_echo_n "checking whether iops->put_link() passes nameidata... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c - #include - void put_link(struct inode *ip, void *cookie) { return; } - static struct inode_operations iops __attribute__ ((unused)) = { - .put_link = put_link, - }; + #include + void put_link(struct dentry *de, struct + nameidata *nd, void *ptr) { return; } + static struct inode_operations + iops __attribute__ ((unused)) = { + .put_link = put_link, + }; int main (void) @@ -26624,17 +27839,30 @@ _ACEOF $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_PUT_LINK_NAMEIDATA 1" >>confdefs.h + else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + as_fn_error $? "no; please file a bug report" "$LINENO" 5 + + + +fi + rm -Rf build + + + + + +fi + rm -Rf build -$as_echo "#define HAVE_PUT_LINK_NAMEIDATA 1" >>confdefs.h @@ -31098,7 +32326,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by zfs $as_me 0.6.5.4, which was +This file was extended by zfs $as_me 0.6.5.5, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -31164,7 +32392,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -zfs config.status 0.6.5.4 +zfs config.status 0.6.5.5 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\"