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>
This commit is contained in:
parent
b2f4edb335
commit
5e44f8c374
@ -4789,8 +4789,8 @@ int ext4_ext_punch_hole(struct file *file, loff_t offset, loff_t length)
|
|||||||
|
|
||||||
/* Now release the pages */
|
/* Now release the pages */
|
||||||
if (last_page_offset > first_page_offset) {
|
if (last_page_offset > first_page_offset) {
|
||||||
truncate_inode_pages_range(mapping, first_page_offset,
|
truncate_pagecache_range(inode, first_page_offset,
|
||||||
last_page_offset-1);
|
last_page_offset - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* finish any pending end_io work */
|
/* finish any pending end_io work */
|
||||||
|
Loading…
Reference in New Issue
Block a user