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 xfs_flushinval_pages(), instead of calling truncate_inode_pages_range() directly. Should xfs_tosspages() be using it too? I don't know: left unchanged. Signed-off-by: Hugh Dickins <hughd@xxxxxxxxxx> --- fs/xfs/xfs_fs_subr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- next-20120511/fs/xfs/xfs_fs_subr.c 2012-01-17 20:42:07.879627688 -0800 +++ linux/fs/xfs/xfs_fs_subr.c 2012-05-12 18:01:14.988654723 -0700 @@ -53,7 +53,7 @@ xfs_flushinval_pages( ret = filemap_write_and_wait_range(mapping, first, last == -1 ? LLONG_MAX : last); if (!ret) - truncate_inode_pages_range(mapping, first, last); + truncate_pagecache_range(VFS_I(ip), first, last); return -ret; } -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>