From b312979252c5b566d2f59febcda67f309637e18c Mon Sep 17 00:00:00 2001 From: Prasad Joshi Date: Sat, 25 Jun 2011 13:30:29 +0100 Subject: Tear down and flush the mmap region 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 Closes #255 --- config/kernel-truncate-setsize.m4 | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 config/kernel-truncate-setsize.m4 (limited to 'config/kernel-truncate-setsize.m4') diff --git a/config/kernel-truncate-setsize.m4 b/config/kernel-truncate-setsize.m4 new file mode 100644 index 000000000..d8b2b47bd --- /dev/null +++ b/config/kernel-truncate-setsize.m4 @@ -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])], + []) +]) -- cgit v1.2.3