diff options
author | Christoph Hellwig <hch@infradead.org> | 2010-02-15 04:44:49 -0500 |
---|---|---|
committer | Alex Elder <aelder@sgi.com> | 2010-03-01 17:34:45 -0500 |
commit | 66d834ea603d61bd90fedad90300ca91c5bba0a3 (patch) | |
tree | f73072b9d87bd71a0739f07e4d0e26f10c5d925a /fs/xfs/linux-2.6/xfs_aops.c | |
parent | fd3200bef7d66ed3924f72c79a465fb7ff85478a (diff) |
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( | |||
187 | isize = xfs_ioend_new_eof(ioend); | 187 | isize = xfs_ioend_new_eof(ioend); |
188 | if (isize) { | 188 | if (isize) { |
189 | ip->i_d.di_size = isize; | 189 | ip->i_d.di_size = isize; |
190 | xfs_mark_inode_dirty_sync(ip); | 190 | xfs_mark_inode_dirty(ip); |
191 | } | 191 | } |
192 | 192 | ||
193 | xfs_iunlock(ip, XFS_ILOCK_EXCL); | 193 | xfs_iunlock(ip, XFS_ILOCK_EXCL); |
@@ -341,7 +341,7 @@ xfs_submit_ioend_bio( | |||
341 | * but don't update the inode size until I/O completion. | 341 | * but don't update the inode size until I/O completion. |
342 | */ | 342 | */ |
343 | if (xfs_ioend_new_eof(ioend)) | 343 | if (xfs_ioend_new_eof(ioend)) |
344 | xfs_mark_inode_dirty_sync(XFS_I(ioend->io_inode)); | 344 | xfs_mark_inode_dirty(XFS_I(ioend->io_inode)); |
345 | 345 | ||
346 | submit_bio(wbc->sync_mode == WB_SYNC_ALL ? | 346 | submit_bio(wbc->sync_mode == WB_SYNC_ALL ? |
347 | WRITE_SYNC_PLUG : WRITE, bio); | 347 | WRITE_SYNC_PLUG : WRITE, bio); |