diff options
author | Dave Chinner <dchinner@redhat.com> | 2012-11-12 22:53:56 +1100 |
---|---|---|
committer | Ben Myers <bpm@sgi.com> | 2012-11-14 15:12:45 -0600 |
commit | 4bc1ea6b8ddd4f2bd78944fbe5a1042ac14b1f5f (patch) | |
tree | 8fb1419d5f7329afb431dbed481d441eb9d38c0c /fs/xfs/xfs_vnodeops.c | |
parent | 95eacf0f71b7682a05b8242c49c68e8e4bb673e3 (diff) | |
download | lwn-4bc1ea6b8ddd4f2bd78944fbe5a1042ac14b1f5f.tar.gz lwn-4bc1ea6b8ddd4f2bd78944fbe5a1042ac14b1f5f.zip |
xfs: remove xfs_flush_pages
It is a complex wrapper around VFS functions, but there are VFS
functions that provide exactly the same functionality. Call the VFS
functions directly and remove the unnecessary indirection and
complexity.
We don't need to care about clearing the XFS_ITRUNCATED flag, as
that is done during .writepages. Hence is cleared by the VFS
writeback path if there is anything to write back during the flush.
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_vnodeops.c')
-rw-r--r-- | fs/xfs/xfs_vnodeops.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 46a7a5de5d6d..c00326afa7bf 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -428,8 +428,11 @@ xfs_release( truncated = xfs_iflags_test_and_clear(ip, XFS_ITRUNCATED); if (truncated) { xfs_iflags_clear(ip, XFS_IDIRTY_RELEASE); - if (VN_DIRTY(VFS_I(ip)) && ip->i_delayed_blks > 0) - xfs_flush_pages(ip, 0, -1, XBF_ASYNC, FI_NONE); + if (VN_DIRTY(VFS_I(ip)) && ip->i_delayed_blks > 0) { + error = -filemap_flush(VFS_I(ip)->i_mapping); + if (error) + return error; + } } } |