diff options
Diffstat (limited to 'fs/xfs/xfs_dfrag.c')
-rw-r--r-- | fs/xfs/xfs_dfrag.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/fs/xfs/xfs_dfrag.c b/fs/xfs/xfs_dfrag.c index b9b8646e62db..d0e9c74d3d96 100644 --- a/fs/xfs/xfs_dfrag.c +++ b/fs/xfs/xfs_dfrag.c | |||
@@ -246,12 +246,10 @@ xfs_swap_extents( | |||
246 | goto out_unlock; | 246 | goto out_unlock; |
247 | } | 247 | } |
248 | 248 | ||
249 | if (VN_CACHED(VFS_I(tip)) != 0) { | 249 | error = -filemap_write_and_wait(VFS_I(ip)->i_mapping); |
250 | error = xfs_flushinval_pages(tip, 0, -1, | 250 | if (error) |
251 | FI_REMAPF_LOCKED); | 251 | goto out_unlock; |
252 | if (error) | 252 | truncate_pagecache_range(VFS_I(ip), 0, -1); |
253 | goto out_unlock; | ||
254 | } | ||
255 | 253 | ||
256 | /* Verify O_DIRECT for ftmp */ | 254 | /* Verify O_DIRECT for ftmp */ |
257 | if (VN_CACHED(VFS_I(tip)) != 0) { | 255 | if (VN_CACHED(VFS_I(tip)) != 0) { |
@@ -315,8 +313,7 @@ xfs_swap_extents( | |||
315 | * are safe. We don't really care if non-io related | 313 | * are safe. We don't really care if non-io related |
316 | * fields change. | 314 | * fields change. |
317 | */ | 315 | */ |
318 | 316 | truncate_pagecache_range(VFS_I(ip), 0, -1); | |
319 | xfs_tosspages(ip, 0, -1, FI_REMAPF); | ||
320 | 317 | ||
321 | tp = xfs_trans_alloc(mp, XFS_TRANS_SWAPEXT); | 318 | tp = xfs_trans_alloc(mp, XFS_TRANS_SWAPEXT); |
322 | if ((error = xfs_trans_reserve(tp, 0, | 319 | if ((error = xfs_trans_reserve(tp, 0, |