]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Tear down and flush the mmap region
authorPrasad Joshi <pjoshi@stec-inc.com>
Sat, 25 Jun 2011 12:30:29 +0000 (13:30 +0100)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 27 Jun 2011 16:59:19 +0000 (09:59 -0700)
The inode eviction should unmap the pages associated with the inode.
These pages should also be flushed to disk to avoid the data loss.
Therefore, use truncate_setsize() in evict_inode() to release the
pagecache.

The API truncate_setsize() was added in 2.6.35 kernel. To ensure
compatibility with the old kernel, the patch defines its own
truncate_setsize function.

Signed-off-by: Prasad Joshi <pjoshi@stec-inc.com>
Closes #255

59 files changed:
Makefile.in
cmd/Makefile.in
cmd/mount_zfs/Makefile.in
cmd/sas_switch_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-setsize.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/udev/Makefile.in
etc/udev/rules.d/Makefile.in
etc/zfs/Makefile.in
include/Makefile.in
include/linux/Makefile.in
include/linux/vfs_compat.h
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/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/man8/Makefile.in
module/zfs/zpl_super.c
scripts/Makefile.in
scripts/zpios-profile/Makefile.in
scripts/zpios-test/Makefile.in
scripts/zpool-config/Makefile.in
scripts/zpool-layout/Makefile.in
zfs_config.h.in

index cfc9829b6b62ff712cedb29e3e8de3f892265f98..ef53f9bd8f0478f518eb3b39fc41d39219b7ab18 100644 (file)
@@ -79,6 +79,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 733290e8b753129e311d87a3c2b475d8854c9ee5..7f00d6d453e5b68b0b40d9e343c1117a5978e5c2 100644 (file)
@@ -64,6 +64,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index bd088d11a2dcbe92966d3d9e6cc874dc53e5224e..15b4ce8cf1643c42d4118d2e1c5be1973a0645ba 100644 (file)
@@ -67,6 +67,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 7702776771179d0891c6171fef29edfe7226e66f..07f60298dc4e9d2c9f78b77689e528c0397e504e 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 6302f73e65c74bc0a49fa0685e75b9ba9cc3ee53..7869a053067464c3b8032f860ead9b5eb678c8d4 100644 (file)
@@ -67,6 +67,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 67ca51f5b0ab2f6fb0bb031a8533bc5b50561708..9f98bdf97bd169254031a4b2e929fcc7311ed13a 100644 (file)
@@ -67,6 +67,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 0b46be50becae2db1cee370b1632106df4c37b9c..325c445aeb7bef61f669e08e3d639f8aa840a1d6 100644 (file)
@@ -67,6 +67,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index b9d2aed8f1bd5babca6ecb34d707d21d58da0408..0ff6084ad833ccd3f2650dd33cff76368ccf6fa2 100644 (file)
@@ -67,6 +67,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index dd2b39dd4c92d78a1e76eccb2a32292dd45f6a01..3056e484f3a6d6a26812486b2a1524b00bc91932 100644 (file)
@@ -67,6 +67,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index a2b21c44adfd6c172be1bc372fb7bfa8c29bb471..9ce95d5fc4415149b6412c26379d55788704e330 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 12512860a644eb4817b54b05386317b69a210355..c09c41d4783bc2ece2524ab954585363145c5e5a 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 169b227131bbd9446fec3764eb04b8b76ccab870..d077e1a2bde4f845f478db27cc4bf1272e3d5994 100644 (file)
@@ -67,6 +67,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 02ddae7edd8a02aed390bac88a1ec6d539963bb2..c39cfce8d5127dcc201de252054f3aa2e1ca6cd0 100644 (file)
@@ -67,6 +67,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
diff --git a/config/kernel-truncate-setsize.m4 b/config/kernel-truncate-setsize.m4
new file mode 100644 (file)
index 0000000..d8b2b47
--- /dev/null
@@ -0,0 +1,12 @@
+dnl #
+dnl # 2.6.35 API change
+dnl # Added truncate_setsize() helper function.
+dnl #
+AC_DEFUN([ZFS_AC_KERNEL_TRUNCATE_SETSIZE], [
+       ZFS_CHECK_SYMBOL_EXPORT(
+               [truncate_setsize],
+               [mm/truncate.c],
+               [AC_DEFINE(HAVE_TRUNCATE_SETSIZE, 1,
+               [truncate_setsize() is available])],
+               [])
+])
index 0ccae33faf2d3cb3ff728f0b2a527af863a29314..67f6bc5d3683ddd83146630fd032f0b1e5d9b13f 100644 (file)
@@ -37,6 +37,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
        ZFS_AC_KERNEL_INSERT_INODE_LOCKED
        ZFS_AC_KERNEL_D_OBTAIN_ALIAS
        ZFS_AC_KERNEL_CHECK_DISK_SIZE_CHANGE
+       ZFS_AC_KERNEL_TRUNCATE_SETSIZE
 
        if test "$LINUX_OBJ" != "$LINUX"; then
                KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
index ded5e332d921bc900b2809ba7ebe0c9d78207cf2..1efd9aae98b3c770e543431ce26e345e85aecb77 100755 (executable)
--- a/configure
+++ b/configure
@@ -14527,6 +14527,46 @@ _ACEOF
 
 
 
+       { $as_echo "$as_me:$LINENO: checking whether symbol truncate_setsize is exported" >&5
+$as_echo_n "checking whether symbol truncate_setsize is exported... " >&6; }
+       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
+                       { $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_TRUNCATE_SETSIZE 1
+_ACEOF
+
+               fi
+       else
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_TRUNCATE_SETSIZE 1
+_ACEOF
+
+       fi
+
+
+
        if test "$LINUX_OBJ" != "$LINUX"; then
                KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
        fi
@@ -18653,6 +18693,46 @@ _ACEOF
 
 
 
+       { $as_echo "$as_me:$LINENO: checking whether symbol truncate_setsize is exported" >&5
+$as_echo_n "checking whether symbol truncate_setsize is exported... " >&6; }
+       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
+                       { $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_TRUNCATE_SETSIZE 1
+_ACEOF
+
+               fi
+       else
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_TRUNCATE_SETSIZE 1
+_ACEOF
+
+       fi
+
+
+
        if test "$LINUX_OBJ" != "$LINUX"; then
                KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
        fi
index 212904e437b3d1bd48fd0d8324aa60b6531f2b8f..30dd963c7cfeef6b7de23fddbe0b5c8e41aad705 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 5cd070757e145831c892cb41c893cbc249cd93d7..b8b2310faca99c5835b2ee38f63f96995e32c0eb 100644 (file)
@@ -64,6 +64,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 53763c870dc3da16db9b51ad09436b8830e0a411..9baf283b6c2ea80e7261b4eec5112e63859fe31f 100644 (file)
@@ -64,6 +64,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 8f911b1a9739a2ed0993e05e4cf316c4035a3b94..3894678db9e3fdb8719a74f1f38c6a4781a114aa 100644 (file)
@@ -64,6 +64,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index b1305282f623a077e505d6a7fd817c89915718d9..356bc4c8e6dcbfac8b54c8d4f79cb56fad19ee32 100644 (file)
@@ -64,6 +64,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index d1fc061ba7210bc2058095045c18094d61bb92b7..189eaca270891c5c4a2bd9b498dc5a4afcf8490b 100644 (file)
@@ -65,6 +65,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index fc99ef4d29c95bf4f9f0ba03f9f35d7a9132a433..4590eb90ab65f8d92382283e9b693094f281f4df 100644 (file)
@@ -65,6 +65,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index c294171d6d1e7c95627be7dcf343fec68d172a09..be5a18232556cd174f6a21f3b5fdb5a961d0a2ff 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 03a3461eb59f16411de553d06970bcb42322d5d7..e6c5ebf7a910dcfa05579db1c3a74c41b9e15cbe 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index dce2b6f28127bf6b52587f733b967c07a5bb60fc..1d8a523cd999082edc2650d93ec7de4000c61a1e 100644 (file)
@@ -41,4 +41,25 @@ insert_inode_locked(struct inode *ip)
 }
 #endif /* HAVE_INSERT_INODE_LOCKED */
 
+/*
+ * 2.6.35 API change,
+ * Add truncate_setsize() if it is not exported by the Linux kernel.
+ *
+ * Truncate the inode and pages associated with the inode. The pages are
+ * unmapped and removed from cache.
+ */
+#ifndef HAVE_TRUNCATE_SETSIZE
+static inline void
+truncate_setsize(struct inode *ip, loff_t new)
+{
+       struct address_space *mapping = ip->i_mapping;
+
+       i_size_write(ip, new);
+
+       unmap_mapping_range(mapping, new + PAGE_SIZE - 1, 0, 1);
+       truncate_inode_pages(mapping, new);
+       unmap_mapping_range(mapping, new + PAGE_SIZE - 1, 0, 1);
+}
+#endif /* HAVE_TRUNCATE_SETSIZE */
+
 #endif /* _ZFS_VFS_H */
index 7a34635fa1836ff008cb60fb3ff9086ef0604623..5da0da174f7a4c5126fed94a2dfce7d1e2e6ca70 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 7ea572a7df182a5a927ea7f7ee3c4db449152b3e..09c882b4ce057c621f582bfb2d06d20fa9632d95 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 77bc9d02b716c17c6adc441952b029ee88b4d2a8..e518edacd4bc790a90b6b13c5d6fd23d2c05c6da 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 68d712acb814d054ff0563161f0072c3b3f1d8ae..6152ac430072c3c3f98b9a683310e4a06313b87e 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index cc329dee1765f8762da576985f01c8c46eb71e4e..08164336e412b62c300a7e6d8d0fc75bdbe3dac5 100644 (file)
@@ -64,6 +64,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index a271c899e531b62f27fcaa440a8754a56ebd85da..13056cbae76a1938f9d1179bdda99c75d552ca86 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 5c01b741f50d7af1f7c3a7281afacb8718d55103..55db140deebc03ca4e08d84dc73acb2896fdf818 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index b762492f671aebd72707fbc76b12875ed6d97db2..a076db57a85634a1ce994a08f7fd5a0cd75b84b1 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 47873231a002147fe86a3000460c5bafb124df10..5b5dfc9eafcde3d806e949f2e3cae0aa28389825 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 34aff3228146fcaab0da7e09dde49fdc62efedc0..103d6fc11de2c6e769544903433914a231c196d1 100644 (file)
@@ -65,6 +65,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 07d8c8d1c446c7a938957d3aee4e9d1118b9ac31..b0d41db19dbfbf9902bf58e7a01b3ed665e7d857 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 3406fa8dce80fc107a454d4752d5926a6ac5c772..c1ac29b41013f862a2eaa27f0f9528b71003fe65 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index f62def9c3ec06bba0c594c2425b15f9c555bbf8e..d2d6a7750bbd25d1265757e7b978c0239e67ac49 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index a6dc187a128c8bcb2f69df596eb51757104990bb..5d4a25192a628c12b7667f1ea9215113e9311c0e 100644 (file)
@@ -64,6 +64,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index efc701d4063efb049f12f144c3fe76950c2f0beb..41e40431649e538655f194ff8348b42e280d1ab1 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 1d2ae85421ca4206b486affcf4328fab44efc280..78808fe33fa4d8c54b4c4ece6658b0a12b8898fe 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 0e3f9e1b6bf448303508b19592382f4c1776251c..fb8b43fb036eaf46e35c98d33e38681436578972 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 0c050a346fd27c1b957e60bb25558413bc2d1da5..a5dcc84a41b682b0d73145e5a84caeeff4256fb2 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 5fadc4d84270e9ac7fbfc6760e85bb76a7161f3f..a57bd9c29eb4d6785e78c50ef20830c14bad63ad 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 6e3fd1abd2f25f7bd90c215b13d09575007f9de6..78282780022c9a33e6cd61138be67a3196b74c34 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 3ca5dd3e6c3c0418333ebea8b62e1ac9b90015f7..b860d0b9aac0f1a30f3a2d5f788fd68c16e9499f 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 64d87035a8b25a5ddbfafd20fe06d95c0aa6240f..ab8eaabe0ddbf83db2b9522f50ea3637628298a5 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 68d0d413ba4c79b7f699c6d3344d2cdd3fff3938..7806b7b604567e48b06af7e77ce339ef475ad2ba 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index cadc301c1ff201df526bcd316496fc761be08629..b38a86d632d93124a57899464053b3c722616303 100644 (file)
@@ -66,6 +66,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 7499e38d2fd64ccaad785689f09a025aefa3c7a0..45532d29966a294e72c47a503d8eea711c1a502b 100644 (file)
@@ -64,6 +64,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 1058d5d3a40494bdd7527df18fdafd14e1d0bb53..7d9feab2948033d1d4d80c3597551acd0db74a65 100644 (file)
@@ -64,6 +64,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 493783213787c738cd830330fbeb47c014839004..304f708c326b1935f28f058c60f36ef85abc8033 100644 (file)
@@ -73,7 +73,7 @@ zpl_inode_destroy(struct inode *ip)
 static void
 zpl_evict_inode(struct inode *ip)
 {
-       truncate_inode_pages(&ip->i_data, 0);
+       truncate_setsize(ip, 0);
        end_writeback(ip);
        zfs_inactive(ip);
 }
@@ -89,7 +89,7 @@ zpl_clear_inode(struct inode *ip)
 static void
 zpl_inode_delete(struct inode *ip)
 {
-       truncate_inode_pages(&ip->i_data, 0);
+       truncate_setsize(ip, 0);
        clear_inode(ip);
 }
 
index 9f0928201c1b958a5814e1034aebf47de2c99582..521e57e31ad7c3ecb70159a71c6d0cb727864912 100644 (file)
@@ -65,6 +65,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index f3f2ada4ba87c82578f947fdcb9cb4013f20d7a2..4a78a6fa8afda445e23c1a444e72d212d28d1ff3 100644 (file)
@@ -65,6 +65,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 9b6a483a38963db70db81d8be5dc6c5c00891eed..14aadb368bbbd9e8e9659e38449519bfc6e885f7 100644 (file)
@@ -65,6 +65,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index 200d58ab11e905964bfb2ddfc58d5ab5fff8f7f3..99353cf3236f10471b5f6ccc321e3d446d5f94b7 100644 (file)
@@ -65,6 +65,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index da5adfcd72f9c62dbbe8dcc800bbd2c0ee725d0b..9628cc80069a4599ecb9a1514433b6ac53ab553f 100644 (file)
@@ -65,6 +65,7 @@ am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
        $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
        $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel-truncate-setsize.m4 \
        $(top_srcdir)/config/kernel-xattr-handler.m4 \
        $(top_srcdir)/config/kernel.m4 \
        $(top_srcdir)/config/user-arch.m4 \
index d9a4851c5398e142320bc955b94dd613ca2b436d..0d3028f3bf6169a4cd7e6cb166e196cb07245df5 100644 (file)
 /* Define to 1 if you have the <sys/types.h> header file. */
 #undef HAVE_SYS_TYPES_H
 
+/* truncate_setsize() is available */
+#undef HAVE_TRUNCATE_SETSIZE
+
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H