diff options
author | Christoph Hellwig <hch@infradead.org> | 2010-02-15 10:44:49 +0100 |
---|---|---|
committer | Alex Elder <aelder@sgi.com> | 2010-03-01 23:34:45 +0100 |
commit | 66d834ea603d61bd90fedad90300ca91c5bba0a3 (patch) | |
tree | f73072b9d87bd71a0739f07e4d0e26f10c5d925a /fs/xfs/linux-2.6/xfs_aops.c | |
parent | xfs: remove wrapper for the fsync file operation (diff) | |
download | linux-66d834ea603d61bd90fedad90300ca91c5bba0a3.tar.xz linux-66d834ea603d61bd90fedad90300ca91c5bba0a3.zip |
xfs: implement optimized fdatasync
Allow us to track the difference between timestamp and size updates
by using mark_inode_dirty from the I/O completion code, and checking
the VFS inode flags in xfs_file_fsync.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <david@fromorbit.com>
Signed-off-by: Alex Elder <aelder@sgi.com>
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_aops.c')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_aops.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c index 66abe36c1213..ce369a816ce3 100644 --- a/fs/xfs/linux-2.6/xfs_aops.c +++ b/fs/xfs/linux-2.6/xfs_aops.c @@ -187,7 +187,7 @@ xfs_setfilesize( isize = xfs_ioend_new_eof(ioend); if (isize) { ip->i_d.di_size = isize; - xfs_mark_inode_dirty_sync(ip); + xfs_mark_inode_dirty(ip); } xfs_iunlock(ip, XFS_ILOCK_EXCL); @@ -341,7 +341,7 @@ xfs_submit_ioend_bio( * but don't update the inode size until I/O completion. */ if (xfs_ioend_new_eof(ioend)) - xfs_mark_inode_dirty_sync(XFS_I(ioend->io_inode)); + xfs_mark_inode_dirty(XFS_I(ioend->io_inode)); submit_bio(wbc->sync_mode == WB_SYNC_ALL ? WRITE_SYNC_PLUG : WRITE, bio); |