X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=configure;h=89596d98edd16eab591cf2a30ce475689eb271f3;hb=ca5fd24984624146ebd1460d7554f42b0572e45f;hp=4cf8c545ba938bc8dc51b50cc51c90637fa20e5b;hpb=2984e0bb0c1dd3b96166b4c3ab99771e8712f686;p=zfs.git diff --git a/configure b/configure index 4cf8c54..89596d9 100755 --- a/configure +++ b/configure @@ -11983,21 +11983,32 @@ fi { $as_echo "$as_me:$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 + +elif test -e "/lib/modules/$(uname -r)/build"; then + headersdir="/lib/modules/$(uname -r)/build" sourcelink=$(readlink -f "$headersdir") - else + +else + sourcelink=$(ls -1d /usr/src/kernels/* \ - /usr/src/linux-* \ + /usr/src/linux-* \ 2>/dev/null | grep -v obj | tail -1) - fi + +fi + if test -n "$sourcelink" && test -e ${sourcelink}; then + kernelsrc=`readlink -f ${sourcelink}` - else + +else + { $as_echo "$as_me:$LINENO: result: Not found" >&5 $as_echo "Not found" >&6; } { { $as_echo "$as_me:$LINENO: error: @@ -12009,30 +12020,53 @@ $as_echo "$as_me: error: *** is installed then try again. If that fails you can specify the *** location of the kernel source with the '--with-linux=PATH' option." >&2;} { (exit 1); exit 1; }; } - fi - else + +fi + + +else + if test "$kernelsrc" = "NONE"; then + kernsrcver=NONE - fi - fi + +fi + + +fi + { $as_echo "$as_me:$LINENO: result: $kernelsrc" >&5 $as_echo "$kernelsrc" >&6; } { $as_echo "$as_me:$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 + +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 + +elif test -d ${kernelsrc}-obj/${target_cpu}/default; then + kernelbuild=${kernelsrc}-obj/${target_cpu}/default - elif test -d `dirname ${kernelsrc}`/build-${target_cpu}; then + +elif test -d `dirname ${kernelsrc}`/build-${target_cpu}; then + kernelbuild=`dirname ${kernelsrc}`/build-${target_cpu} - else + +else + kernelbuild=${kernelsrc} - fi - fi + +fi + + +fi + { $as_echo "$as_me:$LINENO: result: $kernelbuild" >&5 $as_echo "$kernelbuild" >&6; } @@ -12042,33 +12076,48 @@ $as_echo_n "checking kernel source version... " >&6; } 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 + +elif test -r $utsrelease2 && fgrep -q UTS_RELEASE $utsrelease2; then + utsrelease=linux/utsrelease.h - elif test -r $utsrelease3 && fgrep -q UTS_RELEASE $utsrelease3; then + +elif test -r $utsrelease3 && fgrep -q UTS_RELEASE $utsrelease3; then + utsrelease=generated/utsrelease.h - fi + +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:$LINENO: result: Not found" >&5 $as_echo "Not found" >&6; } { { $as_echo "$as_me:$LINENO: error: *** Cannot determine kernel version." >&5 $as_echo "$as_me: error: *** Cannot determine kernel version." >&2;} { (exit 1); exit 1; }; } - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: Not found" >&5 $as_echo "Not found" >&6; } { { $as_echo "$as_me:$LINENO: error: *** Cannot find UTS_RELEASE definition." >&5 $as_echo "$as_me: error: *** Cannot find UTS_RELEASE definition." >&2;} { (exit 1); exit 1; }; } - fi + +fi + { $as_echo "$as_me:$LINENO: result: $kernsrcver" >&5 $as_echo "$kernsrcver" >&6; } @@ -12086,13 +12135,20 @@ $as_echo "$kernsrcver" >&6; } { $as_echo "$as_me:$LINENO: checking kernel file name for module symbols" >&5 $as_echo_n "checking kernel file name for module symbols... " >&6; } if test -f "$modpost"; then + if grep -q Modules.symvers $modpost; then + LINUX_SYMBOLS=Modules.symvers - else + +else + LINUX_SYMBOLS=Module.symvers - fi - if ! test -f "$LINUX_OBJ/$LINUX_SYMBOLS"; then +fi + + + if test ! -f "$LINUX_OBJ/$LINUX_SYMBOLS"; then + { { $as_echo "$as_me:$LINENO: error: *** Please make sure the kernel devel package for your distribution *** is installed. If your building with a custom kernel make sure the @@ -12104,10 +12160,16 @@ $as_echo "$as_me: error: *** kernel is configured, built, and the '--with-linux=PATH' configure *** option refers to the location of the kernel source." >&2;} { (exit 1); exit 1; }; } - fi - else + +fi + + +else + LINUX_SYMBOLS=NONE - fi + +fi + { $as_echo "$as_me:$LINENO: result: $LINUX_SYMBOLS" >&5 $as_echo "$LINUX_SYMBOLS" >&6; } @@ -12132,16 +12194,23 @@ fi { $as_echo "$as_me:$LINENO: checking spl source directory" >&5 $as_echo_n "checking spl source directory... " >&6; } if test -z "$splsrc"; then + sourcelink=`ls -1d /usr/src/spl-*/${LINUX_VERSION} \ 2>/dev/null | tail -1` if test -z "$sourcelink" || test ! -e $sourcelink; then + sourcelink=../spl - fi + +fi + if test -e $sourcelink; then + splsrc=`readlink -f ${sourcelink}` - else + +else + { $as_echo "$as_me:$LINENO: result: Not found" >&5 $as_echo "Not found" >&6; } { { $as_echo "$as_me:$LINENO: error: @@ -12153,21 +12222,33 @@ $as_echo "$as_me: error: *** is installed then try again. If that fails you can specify the *** location of the spl source with the '--with-spl=PATH' option." >&2;} { (exit 1); exit 1; }; } - fi - else + +fi + + +else + if test "$splsrc" = "NONE"; then + splbuild=NONE splsrcver=NONE - fi - fi + +fi + + +fi + { $as_echo "$as_me:$LINENO: result: $splsrc" >&5 $as_echo "$splsrc" >&6; } { $as_echo "$as_me:$LINENO: checking spl build directory" >&5 $as_echo_n "checking spl build directory... " >&6; } if test -z "$splbuild"; then + splbuild=${splsrc} - fi + +fi + { $as_echo "$as_me:$LINENO: result: $splbuild" >&5 $as_echo "$splbuild" >&6; } @@ -12176,13 +12257,17 @@ $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") | cpp -I $splbuild | grep "^splsrcver=" | cut -d \" -f 2` - fi + +fi + if test -z "$splsrcver"; then + { $as_echo "$as_me:$LINENO: result: Not found" >&5 $as_echo "Not found" >&6; } { { $as_echo "$as_me:$LINENO: error: @@ -12192,7 +12277,9 @@ $as_echo "$as_me: error: *** Cannot determine the version of the spl source. *** Please prepare the spl source before running this script" >&2;} { (exit 1); exit 1; }; } - fi + +fi + { $as_echo "$as_me:$LINENO: result: $splsrcver" >&5 $as_echo "$splsrcver" >&6; } @@ -12209,16 +12296,27 @@ $as_echo "$splsrcver" >&6; } { $as_echo "$as_me:$LINENO: checking spl file name for module symbols" >&5 $as_echo_n "checking spl file name for module symbols... " >&6; } if test -r $SPL_OBJ/Module.symvers; then + SPL_SYMBOLS=Module.symvers - elif test -r $SPL_OBJ/Modules.symvers; then + +elif test -r $SPL_OBJ/Modules.symvers; then + SPL_SYMBOLS=Modules.symvers - elif test -r $SPL_OBJ/module/Module.symvers; then + +elif test -r $SPL_OBJ/module/Module.symvers; then + SPL_SYMBOLS=Module.symvers - elif test -r $SPL_OBJ/module/Modules.symvers; then + +elif test -r $SPL_OBJ/module/Modules.symvers; then + SPL_SYMBOLS=Modules.symvers - else + +else + SPL_SYMBOLS=$LINUX_SYMBOLS - fi + +fi + { $as_echo "$as_me:$LINENO: result: $SPL_SYMBOLS" >&5 $as_echo "$SPL_SYMBOLS" >&6; } @@ -12298,6 +12396,7 @@ fi if test "$ZFS_META_LICENSE" = CDDL; then + { $as_echo "$as_me:$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; } @@ -12369,15 +12468,20 @@ fi - fi + +fi + if test "$ZFS_META_LICENSE" = GPL; then + cat >>confdefs.h <<\_ACEOF #define HAVE_GPL_ONLY_SYMBOLS 1 _ACEOF - fi + +fi + { $as_echo "$as_me:$LINENO: checking block device operation prototypes" >&5 @@ -12597,20 +12701,27 @@ $as_echo_n "checking whether symbol blkdev_get_by_path is exported... " >&6; } $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 + if test $rc -eq 0; then + + export=1 + break; + +fi + done if test $export -eq 0; then + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } - else + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -12618,8 +12729,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_BLKDEV_GET_BY_PATH 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -12627,7 +12742,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_BLKDEV_GET_BY_PATH 1 _ACEOF - fi + +fi + @@ -12637,20 +12754,27 @@ $as_echo_n "checking whether symbol open_bdev_exclusive is exported... " >&6; } $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 + if test $rc -eq 0; then + + export=1 + break; + +fi + done if test $export -eq 0; then + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } - else + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -12658,8 +12782,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_OPEN_BDEV_EXCLUSIVE 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -12667,7 +12795,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_OPEN_BDEV_EXCLUSIVE 1 _ACEOF - fi + +fi + @@ -14288,8 +14418,9 @@ fi - { $as_echo "$as_me:$LINENO: checking whether fops->fsync() wants 2 args" >&5 -$as_echo_n "checking whether fops->fsync() wants 2 args... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether fops->fsync() wants" >&5 +$as_echo_n "checking whether fops->fsync() wants... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.c @@ -14306,7 +14437,7 @@ int main (void) { - int (*fsync) (struct file *, int datasync) = NULL; + int (*fsync) (struct file *, struct dentry *, int) = NULL; struct file_operations fops __attribute__ ((unused)); fops.fsync = fsync; @@ -14332,11 +14463,11 @@ _ACEOF $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + { $as_echo "$as_me:$LINENO: result: dentry" >&5 +$as_echo "dentry" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_2ARGS_FSYNC 1 +#define HAVE_FSYNC_WITH_DENTRY 1 _ACEOF @@ -14344,8 +14475,6 @@ else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } @@ -14356,8 +14485,6 @@ fi - { $as_echo "$as_me:$LINENO: checking whether sops->evict_inode() exists" >&5 -$as_echo_n "checking whether sops->evict_inode() exists... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -14374,10 +14501,10 @@ int main (void) { - void (*evict_inode) (struct inode *) = NULL; - struct super_operations sops __attribute__ ((unused)) = { - .evict_inode = evict_inode, - }; + int (*fsync) (struct file *, int) = NULL; + struct file_operations fops __attribute__ ((unused)); + + fops.fsync = fsync; ; return 0; @@ -14400,11 +14527,11 @@ _ACEOF $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + { $as_echo "$as_me:$LINENO: result: no dentry" >&5 +$as_echo "no dentry" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_EVICT_INODE 1 +#define HAVE_FSYNC_WITHOUT_DENTRY 1 _ACEOF @@ -14412,8 +14539,6 @@ else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } @@ -14424,43 +14549,189 @@ fi - { $as_echo "$as_me:$LINENO: checking whether symbol insert_inode_locked is exported" >&5 -$as_echo_n "checking whether symbol insert_inode_locked is exported... " >&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 - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - else - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -cat >>confdefs.h <<\_ACEOF -#define HAVE_INSERT_INODE_LOCKED 1 +cat confdefs.h - <<_ACEOF >conftest.c +/* confdefs.h. */ _ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + + #include + +int +main (void) +{ + + int (*fsync) (struct file *, loff_t, loff_t, int) = NULL; + struct file_operations fops __attribute__ ((unused)); + + fops.fsync = fsync; + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build + echo "obj-m := conftest.o" >build/Makefile + if { ac_try='cp conftest.c build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } >/dev/null && { ac_try='test -s build/conftest.o' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + { $as_echo "$as_me:$LINENO: result: range" >&5 +$as_echo "range" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_FSYNC_RANGE 1 +_ACEOF + + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + + + +fi + + rm -Rf build + + + + + + { $as_echo "$as_me:$LINENO: checking whether sops->evict_inode() exists" >&5 +$as_echo_n "checking whether sops->evict_inode() exists... " >&6; } + + +cat confdefs.h - <<_ACEOF >conftest.c +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + + #include + +int +main (void) +{ + + void (*evict_inode) (struct inode *) = NULL; + struct super_operations sops __attribute__ ((unused)) = { + .evict_inode = evict_inode, + }; + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build + echo "obj-m := conftest.o" >build/Makefile + if { ac_try='cp conftest.c build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } >/dev/null && { ac_try='test -s build/conftest.o' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then - fi - else { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF +#define HAVE_EVICT_INODE 1 +_ACEOF + + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + + +fi + + rm -Rf build + + + + + { $as_echo "$as_me:$LINENO: checking whether symbol insert_inode_locked is exported" >&5 +$as_echo_n "checking whether symbol insert_inode_locked is exported... " >&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 + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + +else + + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + +cat >>confdefs.h <<\_ACEOF #define HAVE_INSERT_INODE_LOCKED 1 _ACEOF - fi + +fi + + +else + + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_INSERT_INODE_LOCKED 1 +_ACEOF + + +fi + @@ -14470,20 +14741,27 @@ $as_echo_n "checking whether symbol d_obtain_alias is exported... " >&6; } $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 + if test $rc -eq 0; then + + export=1 + break; + +fi + done if test $export -eq 0; then + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } - else + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -14491,8 +14769,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_D_OBTAIN_ALIAS 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -14500,7 +14782,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_D_OBTAIN_ALIAS 1 _ACEOF - fi + +fi + @@ -14510,20 +14794,27 @@ $as_echo_n "checking whether symbol check_disk_size_change is exported... " >&6; $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)" "$LINUX/$file" 2>/dev/null rc=$? - if test $rc -eq 0; then - export=1 - break; - fi + if test $rc -eq 0; then + + export=1 + break; + +fi + done if test $export -eq 0; then + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } - else + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -14531,8 +14822,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_CHECK_DISK_SIZE_CHANGE 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -14540,7 +14835,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_CHECK_DISK_SIZE_CHANGE 1 _ACEOF - fi + +fi + @@ -14550,20 +14847,27 @@ $as_echo_n "checking whether symbol truncate_setsize is exported... " >&6; } $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 + if test $rc -eq 0; then + + export=1 + break; + +fi + done if test $export -eq 0; then + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } - else + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -14571,8 +14875,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_TRUNCATE_SETSIZE 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -14580,7 +14888,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_TRUNCATE_SETSIZE 1 _ACEOF - fi + +fi + @@ -14658,20 +14968,27 @@ $as_echo_n "checking whether symbol mount_nodev is exported... " >&6; } $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 + if test $rc -eq 0; then + + export=1 + break; + +fi + done if test $export -eq 0; then + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } - else + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -14679,8 +14996,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_MOUNT_NODEV 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -14688,7 +15009,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_MOUNT_NODEV 1 _ACEOF - fi + +fi + @@ -14758,9 +15081,65 @@ fi + { $as_echo "$as_me:$LINENO: checking whether symbol bdi_setup_and_register is exported" >&5 +$as_echo_n "checking whether symbol bdi_setup_and_register is exported... " >&6; } + 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 + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + +else + + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_BDI_SETUP_AND_REGISTER 1 +_ACEOF + + +fi + + +else + + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_BDI_SETUP_AND_REGISTER 1 +_ACEOF + + +fi + + + + if test "$LINUX_OBJ" != "$LINUX"; then + KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ" - fi + +fi + @@ -16341,21 +16720,32 @@ fi { $as_echo "$as_me:$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 + +elif test -e "/lib/modules/$(uname -r)/build"; then + headersdir="/lib/modules/$(uname -r)/build" sourcelink=$(readlink -f "$headersdir") - else + +else + sourcelink=$(ls -1d /usr/src/kernels/* \ - /usr/src/linux-* \ + /usr/src/linux-* \ 2>/dev/null | grep -v obj | tail -1) - fi + +fi + if test -n "$sourcelink" && test -e ${sourcelink}; then + kernelsrc=`readlink -f ${sourcelink}` - else + +else + { $as_echo "$as_me:$LINENO: result: Not found" >&5 $as_echo "Not found" >&6; } { { $as_echo "$as_me:$LINENO: error: @@ -16367,30 +16757,53 @@ $as_echo "$as_me: error: *** is installed then try again. If that fails you can specify the *** location of the kernel source with the '--with-linux=PATH' option." >&2;} { (exit 1); exit 1; }; } - fi - else + +fi + + +else + if test "$kernelsrc" = "NONE"; then + kernsrcver=NONE - fi - fi + +fi + + +fi + { $as_echo "$as_me:$LINENO: result: $kernelsrc" >&5 $as_echo "$kernelsrc" >&6; } { $as_echo "$as_me:$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 + +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 + +elif test -d ${kernelsrc}-obj/${target_cpu}/default; then + kernelbuild=${kernelsrc}-obj/${target_cpu}/default - elif test -d `dirname ${kernelsrc}`/build-${target_cpu}; then + +elif test -d `dirname ${kernelsrc}`/build-${target_cpu}; then + kernelbuild=`dirname ${kernelsrc}`/build-${target_cpu} - else + +else + kernelbuild=${kernelsrc} - fi - fi + +fi + + +fi + { $as_echo "$as_me:$LINENO: result: $kernelbuild" >&5 $as_echo "$kernelbuild" >&6; } @@ -16400,33 +16813,48 @@ $as_echo_n "checking kernel source version... " >&6; } 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 + +elif test -r $utsrelease2 && fgrep -q UTS_RELEASE $utsrelease2; then + utsrelease=linux/utsrelease.h - elif test -r $utsrelease3 && fgrep -q UTS_RELEASE $utsrelease3; then + +elif test -r $utsrelease3 && fgrep -q UTS_RELEASE $utsrelease3; then + utsrelease=generated/utsrelease.h - fi + +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:$LINENO: result: Not found" >&5 $as_echo "Not found" >&6; } { { $as_echo "$as_me:$LINENO: error: *** Cannot determine kernel version." >&5 $as_echo "$as_me: error: *** Cannot determine kernel version." >&2;} { (exit 1); exit 1; }; } - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: Not found" >&5 $as_echo "Not found" >&6; } { { $as_echo "$as_me:$LINENO: error: *** Cannot find UTS_RELEASE definition." >&5 $as_echo "$as_me: error: *** Cannot find UTS_RELEASE definition." >&2;} { (exit 1); exit 1; }; } - fi + +fi + { $as_echo "$as_me:$LINENO: result: $kernsrcver" >&5 $as_echo "$kernsrcver" >&6; } @@ -16444,13 +16872,20 @@ $as_echo "$kernsrcver" >&6; } { $as_echo "$as_me:$LINENO: checking kernel file name for module symbols" >&5 $as_echo_n "checking kernel file name for module symbols... " >&6; } if test -f "$modpost"; then + if grep -q Modules.symvers $modpost; then + LINUX_SYMBOLS=Modules.symvers - else + +else + LINUX_SYMBOLS=Module.symvers - fi - if ! test -f "$LINUX_OBJ/$LINUX_SYMBOLS"; then +fi + + + if test ! -f "$LINUX_OBJ/$LINUX_SYMBOLS"; then + { { $as_echo "$as_me:$LINENO: error: *** Please make sure the kernel devel package for your distribution *** is installed. If your building with a custom kernel make sure the @@ -16462,10 +16897,16 @@ $as_echo "$as_me: error: *** kernel is configured, built, and the '--with-linux=PATH' configure *** option refers to the location of the kernel source." >&2;} { (exit 1); exit 1; }; } - fi - else + +fi + + +else + LINUX_SYMBOLS=NONE - fi + +fi + { $as_echo "$as_me:$LINENO: result: $LINUX_SYMBOLS" >&5 $as_echo "$LINUX_SYMBOLS" >&6; } @@ -16490,16 +16931,23 @@ fi { $as_echo "$as_me:$LINENO: checking spl source directory" >&5 $as_echo_n "checking spl source directory... " >&6; } if test -z "$splsrc"; then + sourcelink=`ls -1d /usr/src/spl-*/${LINUX_VERSION} \ 2>/dev/null | tail -1` if test -z "$sourcelink" || test ! -e $sourcelink; then + sourcelink=../spl - fi + +fi + if test -e $sourcelink; then + splsrc=`readlink -f ${sourcelink}` - else + +else + { $as_echo "$as_me:$LINENO: result: Not found" >&5 $as_echo "Not found" >&6; } { { $as_echo "$as_me:$LINENO: error: @@ -16511,21 +16959,33 @@ $as_echo "$as_me: error: *** is installed then try again. If that fails you can specify the *** location of the spl source with the '--with-spl=PATH' option." >&2;} { (exit 1); exit 1; }; } - fi - else + +fi + + +else + if test "$splsrc" = "NONE"; then + splbuild=NONE splsrcver=NONE - fi - fi + +fi + + +fi + { $as_echo "$as_me:$LINENO: result: $splsrc" >&5 $as_echo "$splsrc" >&6; } { $as_echo "$as_me:$LINENO: checking spl build directory" >&5 $as_echo_n "checking spl build directory... " >&6; } if test -z "$splbuild"; then + splbuild=${splsrc} - fi + +fi + { $as_echo "$as_me:$LINENO: result: $splbuild" >&5 $as_echo "$splbuild" >&6; } @@ -16534,13 +16994,17 @@ $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") | cpp -I $splbuild | grep "^splsrcver=" | cut -d \" -f 2` - fi + +fi + if test -z "$splsrcver"; then + { $as_echo "$as_me:$LINENO: result: Not found" >&5 $as_echo "Not found" >&6; } { { $as_echo "$as_me:$LINENO: error: @@ -16550,7 +17014,9 @@ $as_echo "$as_me: error: *** Cannot determine the version of the spl source. *** Please prepare the spl source before running this script" >&2;} { (exit 1); exit 1; }; } - fi + +fi + { $as_echo "$as_me:$LINENO: result: $splsrcver" >&5 $as_echo "$splsrcver" >&6; } @@ -16567,16 +17033,27 @@ $as_echo "$splsrcver" >&6; } { $as_echo "$as_me:$LINENO: checking spl file name for module symbols" >&5 $as_echo_n "checking spl file name for module symbols... " >&6; } if test -r $SPL_OBJ/Module.symvers; then + SPL_SYMBOLS=Module.symvers - elif test -r $SPL_OBJ/Modules.symvers; then + +elif test -r $SPL_OBJ/Modules.symvers; then + SPL_SYMBOLS=Modules.symvers - elif test -r $SPL_OBJ/module/Module.symvers; then + +elif test -r $SPL_OBJ/module/Module.symvers; then + SPL_SYMBOLS=Module.symvers - elif test -r $SPL_OBJ/module/Modules.symvers; then + +elif test -r $SPL_OBJ/module/Modules.symvers; then + SPL_SYMBOLS=Modules.symvers - else + +else + SPL_SYMBOLS=$LINUX_SYMBOLS - fi + +fi + { $as_echo "$as_me:$LINENO: result: $SPL_SYMBOLS" >&5 $as_echo "$SPL_SYMBOLS" >&6; } @@ -16656,6 +17133,7 @@ fi if test "$ZFS_META_LICENSE" = CDDL; then + { $as_echo "$as_me:$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; } @@ -16727,15 +17205,20 @@ fi - fi + +fi + if test "$ZFS_META_LICENSE" = GPL; then + cat >>confdefs.h <<\_ACEOF #define HAVE_GPL_ONLY_SYMBOLS 1 _ACEOF - fi + +fi + { $as_echo "$as_me:$LINENO: checking block device operation prototypes" >&5 @@ -16955,20 +17438,27 @@ $as_echo_n "checking whether symbol blkdev_get_by_path is exported... " >&6; } $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 + if test $rc -eq 0; then + + export=1 + break; + +fi + done if test $export -eq 0; then + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } - else + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -16976,8 +17466,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_BLKDEV_GET_BY_PATH 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -16985,7 +17479,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_BLKDEV_GET_BY_PATH 1 _ACEOF - fi + +fi + @@ -16995,20 +17491,27 @@ $as_echo_n "checking whether symbol open_bdev_exclusive is exported... " >&6; } $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 + if test $rc -eq 0; then + + export=1 + break; + +fi + done if test $export -eq 0; then + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } - else + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -17016,8 +17519,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_OPEN_BDEV_EXCLUSIVE 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -17025,7 +17532,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_OPEN_BDEV_EXCLUSIVE 1 _ACEOF - fi + +fi + @@ -18308,14 +18817,159 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include + +int +main (void) +{ + + struct request *req = NULL; + (void) rq_is_sync(req); + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build + echo "obj-m := conftest.o" >build/Makefile + if { ac_try='cp conftest.c build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } >/dev/null && { ac_try='test -s build/conftest.o' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_RQ_IS_SYNC 1 +_ACEOF + + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + + +fi + + rm -Rf build + + + + + { $as_echo "$as_me:$LINENO: checking whether rq_for_each_segment() is available" >&5 +$as_echo_n "checking whether rq_for_each_segment() is available... " >&6; } + + +cat confdefs.h - <<_ACEOF >conftest.c +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + + #include + +int +main (void) +{ + + struct bio_vec *bv; + struct req_iterator iter; + struct request *req = NULL; + rq_for_each_segment(bv, req, iter) { } + + ; + return 0; +} + +_ACEOF + + + rm -Rf build && mkdir -p build + echo "obj-m := conftest.o" >build/Makefile + if { ac_try='cp conftest.c build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } >/dev/null && { ac_try='test -s build/conftest.o' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_RQ_FOR_EACH_SEGMENT 1 +_ACEOF + + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + + +fi + + rm -Rf build + + + + { $as_echo "$as_me:$LINENO: checking whether super_block uses const struct xattr_hander" >&5 +$as_echo_n "checking whether super_block uses const struct xattr_hander... " >&6; } + + +cat confdefs.h - <<_ACEOF >conftest.c +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + + #include + #include + + const struct xattr_handler xattr_test_handler = { + .prefix = "test", + .get = NULL, + .set = NULL, + }; + + const struct xattr_handler *xattr_handlers[] = { + &xattr_test_handler, + }; int main (void) { - struct request *req = NULL; - (void) rq_is_sync(req); + struct super_block sb __attribute__ ((unused)); + + sb.s_xattr = xattr_handlers; ; return 0; @@ -18342,7 +18996,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_RQ_IS_SYNC 1 +#define HAVE_CONST_XATTR_HANDLER 1 _ACEOF @@ -18362,8 +19016,8 @@ fi - { $as_echo "$as_me:$LINENO: checking whether rq_for_each_segment() is available" >&5 -$as_echo_n "checking whether rq_for_each_segment() is available... " >&6; } + { $as_echo "$as_me:$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 @@ -18374,16 +19028,17 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - struct bio_vec *bv; - struct req_iterator iter; - struct request *req = NULL; - rq_for_each_segment(bv, req, iter) { } + int (*get)(struct dentry *dentry, const char *name, + void *buffer, size_t size, int handler_flags) = NULL; + struct xattr_handler xops __attribute__ ((unused)); + + xops.get = get; ; return 0; @@ -18410,7 +19065,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_RQ_FOR_EACH_SEGMENT 1 +#define HAVE_DENTRY_XATTR_GET 1 _ACEOF @@ -18429,8 +19084,9 @@ fi - { $as_echo "$as_me:$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:$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 @@ -18441,26 +19097,18 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include #include - const struct xattr_handler xattr_test_handler = { - .prefix = "test", - .get = NULL, - .set = NULL, - }; - - const struct xattr_handler *xattr_handlers[] = { - &xattr_test_handler, - }; - int main (void) { - struct super_block sb __attribute__ ((unused)); + int (*set)(struct dentry *dentry, const char *name, + const void *buffer, size_t size, int flags, + int handler_flags) = NULL; + struct xattr_handler xops __attribute__ ((unused)); - sb.s_xattr = xattr_handlers; + xops.set = set; ; return 0; @@ -18487,7 +19135,7 @@ _ACEOF $as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_CONST_XATTR_HANDLER 1 +#define HAVE_DENTRY_XATTR_SET 1 _ACEOF @@ -18507,8 +19155,9 @@ fi - { $as_echo "$as_me:$LINENO: checking whether xattr_handler->get() wants dentry" >&5 -$as_echo_n "checking whether xattr_handler->get() wants dentry... " >&6; } + { $as_echo "$as_me:$LINENO: checking whether fops->fsync() wants" >&5 +$as_echo_n "checking whether fops->fsync() wants... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.c @@ -18519,17 +19168,16 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - int (*get)(struct dentry *dentry, const char *name, - void *buffer, size_t size, int handler_flags) = NULL; - struct xattr_handler xops __attribute__ ((unused)); + int (*fsync) (struct file *, struct dentry *, int) = NULL; + struct file_operations fops __attribute__ ((unused)); - xops.get = get; + fops.fsync = fsync; ; return 0; @@ -18552,11 +19200,11 @@ _ACEOF $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + { $as_echo "$as_me:$LINENO: result: dentry" >&5 +$as_echo "dentry" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_DENTRY_XATTR_GET 1 +#define HAVE_FSYNC_WITH_DENTRY 1 _ACEOF @@ -18564,8 +19212,6 @@ else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } @@ -18576,8 +19222,6 @@ fi - { $as_echo "$as_me:$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 @@ -18588,18 +19232,16 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include + #include int main (void) { - int (*set)(struct dentry *dentry, const char *name, - const void *buffer, size_t size, int flags, - int handler_flags) = NULL; - struct xattr_handler xops __attribute__ ((unused)); + int (*fsync) (struct file *, int) = NULL; + struct file_operations fops __attribute__ ((unused)); - xops.set = set; + fops.fsync = fsync; ; return 0; @@ -18622,11 +19264,11 @@ _ACEOF $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + { $as_echo "$as_me:$LINENO: result: no dentry" >&5 +$as_echo "no dentry" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_DENTRY_XATTR_SET 1 +#define HAVE_FSYNC_WITHOUT_DENTRY 1 _ACEOF @@ -18634,8 +19276,6 @@ else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } @@ -18646,8 +19286,6 @@ fi - { $as_echo "$as_me:$LINENO: checking whether fops->fsync() wants 2 args" >&5 -$as_echo_n "checking whether fops->fsync() wants 2 args... " >&6; } cat confdefs.h - <<_ACEOF >conftest.c @@ -18664,7 +19302,7 @@ int main (void) { - int (*fsync) (struct file *, int datasync) = NULL; + int (*fsync) (struct file *, loff_t, loff_t, int) = NULL; struct file_operations fops __attribute__ ((unused)); fops.fsync = fsync; @@ -18690,11 +19328,11 @@ _ACEOF $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } + { $as_echo "$as_me:$LINENO: result: range" >&5 +$as_echo "range" >&6; } cat >>confdefs.h <<\_ACEOF -#define HAVE_2ARGS_FSYNC 1 +#define HAVE_FSYNC_RANGE 1 _ACEOF @@ -18702,8 +19340,6 @@ else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } @@ -18714,6 +19350,7 @@ fi + { $as_echo "$as_me:$LINENO: checking whether sops->evict_inode() exists" >&5 $as_echo_n "checking whether sops->evict_inode() exists... " >&6; } @@ -18788,20 +19425,27 @@ $as_echo_n "checking whether symbol insert_inode_locked is exported... " >&6; } $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 + if test $rc -eq 0; then + + export=1 + break; + +fi + done if test $export -eq 0; then + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } - else + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -18809,8 +19453,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_INSERT_INODE_LOCKED 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -18818,7 +19466,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_INSERT_INODE_LOCKED 1 _ACEOF - fi + +fi + @@ -18828,20 +19478,27 @@ $as_echo_n "checking whether symbol d_obtain_alias is exported... " >&6; } $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 + if test $rc -eq 0; then + + export=1 + break; + +fi + done if test $export -eq 0; then + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } - else + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -18849,8 +19506,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_D_OBTAIN_ALIAS 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -18858,7 +19519,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_D_OBTAIN_ALIAS 1 _ACEOF - fi + +fi + @@ -18868,20 +19531,27 @@ $as_echo_n "checking whether symbol check_disk_size_change is exported... " >&6; $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)" "$LINUX/$file" 2>/dev/null rc=$? - if test $rc -eq 0; then - export=1 - break; - fi + if test $rc -eq 0; then + + export=1 + break; + +fi + done if test $export -eq 0; then + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } - else + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -18889,8 +19559,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_CHECK_DISK_SIZE_CHANGE 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -18898,7 +19572,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_CHECK_DISK_SIZE_CHANGE 1 _ACEOF - fi + +fi + @@ -18908,20 +19584,27 @@ $as_echo_n "checking whether symbol truncate_setsize is exported... " >&6; } $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 + if test $rc -eq 0; then + + export=1 + break; + +fi + done if test $export -eq 0; then + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } - else + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -18929,8 +19612,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_TRUNCATE_SETSIZE 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -18938,7 +19625,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_TRUNCATE_SETSIZE 1 _ACEOF - fi + +fi + @@ -19016,20 +19705,27 @@ $as_echo_n "checking whether symbol mount_nodev is exported... " >&6; } $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 + if test $rc -eq 0; then + + export=1 + break; + +fi + done if test $export -eq 0; then + { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } - else + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -19037,8 +19733,12 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_MOUNT_NODEV 1 _ACEOF - fi - else + +fi + + +else + { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } @@ -19046,7 +19746,9 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_MOUNT_NODEV 1 _ACEOF - fi + +fi + @@ -19116,9 +19818,65 @@ fi + { $as_echo "$as_me:$LINENO: checking whether symbol bdi_setup_and_register is exported" >&5 +$as_echo_n "checking whether symbol bdi_setup_and_register is exported... " >&6; } + 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 + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + + +else + + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_BDI_SETUP_AND_REGISTER 1 +_ACEOF + + +fi + + +else + + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define HAVE_BDI_SETUP_AND_REGISTER 1 +_ACEOF + + +fi + + + + if test "$LINUX_OBJ" != "$LINUX"; then + KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ" - fi + +fi +