aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext4
diff options
context:
space:
mode:
authorHugh Dickins <hughd@google.com>2012-06-01 00:15:28 -0400
committerTheodore Ts'o <tytso@mit.edu>2012-06-01 00:15:28 -0400
commit5e44f8c374dc4f8eadf61cd18b2c0d46bc87c1b7 (patch)
treeccecc6ddd068b809de59b45abe7714ee47076d95 /fs/ext4
parentb2f4edb335f23626225a792e0669d1becf68312f (diff)
ext4: hole-punch use truncate_pagecache_range
When truncating a file, we unmap pages from userspace first, as that's usually more efficient than relying, page by page, on the fallback in truncate_inode_page() - particularly if the file is mapped many times. Do the same when punching a hole: 3.4 added truncate_pagecache_range() to do the unmap and trunc, so use it in ext4_ext_punch_hole(), instead of calling truncate_inode_pages_range() directly. Signed-off-by: Hugh Dickins <hughd@google.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/ext4')
-rw-r--r--fs/ext4/extents.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 496151f893eb..91341ec6e06a 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -4789,8 +4789,8 @@ int ext4_ext_punch_hole(struct file *file, loff_t offset, loff_t length)
4789 4789
4790 /* Now release the pages */ 4790 /* Now release the pages */
4791 if (last_page_offset > first_page_offset) { 4791 if (last_page_offset > first_page_offset) {
4792 truncate_inode_pages_range(mapping, first_page_offset, 4792 truncate_pagecache_range(inode, first_page_offset,
4793 last_page_offset-1); 4793 last_page_offset - 1);
4794 } 4794 }
4795 4795
4796 /* finish any pending end_io work */ 4796 /* finish any pending end_io work */