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 from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html