aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_dfrag.c
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2012-11-12 22:53:57 +1100
committerBen Myers <bpm@sgi.com>2012-11-14 15:15:08 -0600
commitfb59581404ab7ec5075299065c22cb211a9262a9 (patch)
tree56a9d9a6cf90ee9b6d753de4401b6a2bf8d02e0f /fs/xfs/xfs_dfrag.c
parent4bc1ea6b8ddd4f2bd78944fbe5a1042ac14b1f5f (diff)
downloadkernel_goldelico_gta04-fb59581404ab7ec5075299065c22cb211a9262a9.zip
kernel_goldelico_gta04-fb59581404ab7ec5075299065c22cb211a9262a9.tar.gz
kernel_goldelico_gta04-fb59581404ab7ec5075299065c22cb211a9262a9.tar.bz2
xfs: remove xfs_flushinval_pages
It's just a simple wrapper around VFS functionality, and is actually bugging in that it doesn't remove mappings before invalidating the page cache. Remove it and replace it with the correct VFS functionality. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Andrew Dahl <adahl@sgi.com> Signed-off-by: Ben Myers <bpm@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_dfrag.c')
-rw-r--r--fs/xfs/xfs_dfrag.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/fs/xfs/xfs_dfrag.c b/fs/xfs/xfs_dfrag.c
index b2c63a2..d0e9c74 100644
--- a/fs/xfs/xfs_dfrag.c
+++ b/fs/xfs/xfs_dfrag.c
@@ -246,12 +246,10 @@ xfs_swap_extents(
goto out_unlock;
}
- if (VN_CACHED(VFS_I(tip)) != 0) {
- error = xfs_flushinval_pages(tip, 0, -1,
- FI_REMAPF_LOCKED);
- if (error)
- goto out_unlock;
- }
+ error = -filemap_write_and_wait(VFS_I(ip)->i_mapping);
+ if (error)
+ goto out_unlock;
+ truncate_pagecache_range(VFS_I(ip), 0, -1);
/* Verify O_DIRECT for ftmp */
if (VN_CACHED(VFS_I(tip)) != 0) {