Linux 3.5 compat, iops->truncate_range() removed
authorRichard Yao <ryao@cs.stonybrook.edu>
Mon, 23 Jul 2012 18:11:25 +0000 (11:11 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 23 Jul 2012 19:29:32 +0000 (12:29 -0700)
The vmtruncate_range() support has been removed from the kernel in
favor of using the fallocate method in the file_operations table.

Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #784

60 files changed:
Makefile.in
cmd/Makefile.in
cmd/mount_zfs/Makefile.in
cmd/vdev_id/Makefile.in
cmd/zdb/Makefile.in
cmd/zfs/Makefile.in
cmd/zinject/Makefile.in
cmd/zpios/Makefile.in
cmd/zpool/Makefile.in
cmd/zpool_id/Makefile.in
cmd/zpool_layout/Makefile.in
cmd/ztest/Makefile.in
cmd/zvol_id/Makefile.in
config/kernel-truncate-range.m4 [new file with mode: 0644]
config/kernel.m4
configure
dracut/90zfs/Makefile.in
dracut/Makefile.in
etc/Makefile.in
etc/init.d/Makefile.in
etc/zfs/Makefile.in
include/Makefile.in
include/linux/Makefile.in
include/sys/Makefile.in
include/sys/fm/Makefile.in
include/sys/fm/fs/Makefile.in
include/sys/fs/Makefile.in
lib/Makefile.in
lib/libavl/Makefile.in
lib/libefi/Makefile.in
lib/libnvpair/Makefile.in
lib/libshare/Makefile.in
lib/libspl/Makefile.in
lib/libspl/asm-generic/Makefile.in
lib/libspl/asm-i386/Makefile.in
lib/libspl/asm-x86_64/Makefile.in
lib/libspl/include/Makefile.in
lib/libspl/include/ia32/Makefile.in
lib/libspl/include/ia32/sys/Makefile.in
lib/libspl/include/rpc/Makefile.in
lib/libspl/include/sys/Makefile.in
lib/libspl/include/sys/dktp/Makefile.in
lib/libspl/include/sys/sysevent/Makefile.in
lib/libspl/include/util/Makefile.in
lib/libunicode/Makefile.in
lib/libuutil/Makefile.in
lib/libzfs/Makefile.in
lib/libzpool/Makefile.in
man/Makefile.in
man/man5/Makefile.in
man/man8/Makefile.in
module/zfs/zpl_inode.c
scripts/Makefile.in
scripts/zpios-profile/Makefile.in
scripts/zpios-test/Makefile.in
scripts/zpool-config/Makefile.in
scripts/zpool-layout/Makefile.in
udev/Makefile.in
udev/rules.d/Makefile.in
zfs_config.h.in

index f47b28a..1b3cf4a 100644 (file)
@@ -108,6 +108,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index f1bc924..91b580d 100644 (file)
@@ -85,6 +85,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 2c119d3..02ad8bb 100644 (file)
@@ -88,6 +88,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 200c3ed..7022207 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 0879ca6..6ec74c8 100644 (file)
@@ -88,6 +88,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 707771d..7dd2889 100644 (file)
@@ -88,6 +88,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 2b1ef7d..de34212 100644 (file)
@@ -88,6 +88,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 04b698c..59aa155 100644 (file)
@@ -88,6 +88,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index ef43eea..320ae0f 100644 (file)
@@ -88,6 +88,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 7722b7b..1ec069e 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 0985b39..24f1b27 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index b55c2dc..06cf365 100644 (file)
@@ -88,6 +88,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 6465352..4c27c87 100644 (file)
@@ -88,6 +88,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
diff --git a/config/kernel-truncate-range.m4 b/config/kernel-truncate-range.m4
new file mode 100644 (file)
index 0000000..da2cb50
--- /dev/null
@@ -0,0 +1,24 @@
+dnl #
+dnl # 3.5.0 API change
+dnl # torvalds/linux@17cf28afea2a1112f240a3a2da8af883be024811 removed
+dnl # truncate_range(). The file hole punching functionality is now
+dnl # provided by fallocate()
+dnl #
+AC_DEFUN([ZFS_AC_KERNEL_TRUNCATE_RANGE], [
+       AC_MSG_CHECKING([whether iops->truncate_range() exists])
+       ZFS_LINUX_TRY_COMPILE([
+               #include <linux/fs.h>
+               void truncate_range(struct inode *inode, loff_t start,
+                                   loff_t end) { return; }
+               static struct inode_operations iops __attribute__ ((unused)) = {
+                       .truncate_range = truncate_range,
+               };
+       ],[
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_INODE_TRUNCATE_RANGE, 1,
+                         [iops->truncate_range() exists])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
index 7c0b270..55609cd 100644 (file)
@@ -47,6 +47,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
        ZFS_AC_KERNEL_NR_CACHED_OBJECTS
        ZFS_AC_KERNEL_FREE_CACHED_OBJECTS
        ZFS_AC_KERNEL_FALLOCATE
+       ZFS_AC_KERNEL_TRUNCATE_RANGE
        ZFS_AC_KERNEL_CREATE_UMODE_T
        ZFS_AC_KERNEL_AUTOMOUNT
        ZFS_AC_KERNEL_ENCODE_FH_WITH_INODE
index 27d5973..7c6890b 100755 (executable)
--- a/configure
+++ b/configure
 
 
 
+       { $as_echo "$as_me:$LINENO: checking whether iops->truncate_range() exists" >&5
+$as_echo_n "checking whether iops->truncate_range() 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 <linux/fs.h>
+               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)
+{
+
+
+  ;
+  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_INODE_TRUNCATE_RANGE 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 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:$LINENO: checking whether iops->truncate_range() exists" >&5
+$as_echo_n "checking whether iops->truncate_range() 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 <linux/fs.h>
+               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)
+{
+
+
+  ;
+  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_INODE_TRUNCATE_RANGE 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 iops->create()/mkdir()/mknod() take umode_t" >&5
 $as_echo_n "checking whether iops->create()/mkdir()/mknod() take umode_t... " >&6; }
 
index e01e98e..9d2d3b0 100644 (file)
@@ -86,6 +86,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 9cac920..9e1d6e1 100644 (file)
@@ -85,6 +85,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 465d89b..5aa2222 100644 (file)
@@ -85,6 +85,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 6bf44b2..f3bf876 100644 (file)
@@ -86,6 +86,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index ac7c6f9..755736b 100644 (file)
@@ -86,6 +86,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index a45d5a1..0eae5fb 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 94d8ece..f4fe8f6 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 6df0fda..b86bfd8 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 529681e..349f9a5 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 488c15f..810a599 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 0b63457..137f73e 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 1382487..9957fbc 100644 (file)
@@ -85,6 +85,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index a376d73..9e2c622 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 184bce3..f9dc1ea 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 3eb6a18..1a5843c 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 226105c..0949b08 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 75e8673..286ddb3 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index b27a809..c00266d 100644 (file)
@@ -86,6 +86,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 19ed002..3efb3d2 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 33d4c72..c0ff596 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 015b034..02c0a0d 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 8028675..82e9617 100644 (file)
@@ -85,6 +85,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 484e090..1d73388 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index c115bf4..aca2605 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 06665cd..d29cd2f 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 7563bfe..787b28b 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 8a2b618..780b9d8 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index f9ac261..205bfd7 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index ac2de79..e6cf844 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 0421093..c0cf1ff 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index c53ef88..0bd4d17 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 5ccad59..c57bdfe 100644 (file)
@@ -87,6 +87,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 41392a3..10a9daf 100644 (file)
@@ -85,6 +85,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index fb52aeb..2dc5ba7 100644 (file)
@@ -85,6 +85,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 4a4e130..127f840 100644 (file)
@@ -85,6 +85,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index ea8c309..0dab82c 100644 (file)
@@ -328,6 +328,7 @@ out:
        return (error);
 }
 
+#ifdef HAVE_INODE_TRUNCATE_RANGE
 static void
 zpl_truncate_range(struct inode* ip, loff_t start, loff_t end)
 {
@@ -354,6 +355,7 @@ zpl_truncate_range(struct inode* ip, loff_t start, loff_t end)
 
        crfree(cr);
 }
+#endif /* HAVE_INODE_TRUNCATE_RANGE */
 
 #ifdef HAVE_INODE_FALLOCATE
 static long
@@ -379,7 +381,9 @@ const struct inode_operations zpl_inode_operations = {
        .getxattr       = generic_getxattr,
        .removexattr    = generic_removexattr,
        .listxattr      = zpl_xattr_list,
+#ifdef HAVE_INODE_TRUNCATE_RANGE
        .truncate_range = zpl_truncate_range,
+#endif /* HAVE_INODE_TRUNCATE_RANGE */
 #ifdef HAVE_INODE_FALLOCATE
        .fallocate      = zpl_fallocate,
 #endif /* HAVE_INODE_FALLOCATE */
index 092fb67..4e3e31b 100644 (file)
@@ -86,6 +86,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 3bcac7e..da5dbf1 100644 (file)
@@ -86,6 +86,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 93bfc02..79ed32f 100644 (file)
@@ -86,6 +86,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 3563966..de63817 100644 (file)
@@ -86,6 +86,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 20047d2..890062e 100644 (file)
@@ -86,6 +86,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 10ad792..8c4ea1e 100644 (file)
@@ -85,6 +85,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index c01f95c..a700205 100644 (file)
@@ -86,6 +86,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-set-nlink.m4 \
        $(top_srcdir)/config/kernel-show-options.m4 \
        $(top_srcdir)/config/kernel-shrink.m4 \
+       $(top_srcdir)/config/kernel-truncate-range.m4 \
        $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
index 7aebb8f..a284126 100644 (file)
 /* fops->fallocate() exists */
 #undef HAVE_INODE_FALLOCATE
 
+/* iops->truncate_range() exists */
+#undef HAVE_INODE_TRUNCATE_RANGE
+
 /* insert_inode_locked() is available */
 #undef HAVE_INSERT_INODE_LOCKED