diff options
author | Nathan Scott <nathans@sgi.com> | 2005-11-01 19:43:58 -0500 |
---|---|---|
committer | Nathan Scott <nathans@sgi.com> | 2005-11-01 19:43:58 -0500 |
commit | 4aeb664c2561c0bae18d7a3a141d7d2acf126da1 (patch) | |
tree | 832e72237a69b76bf4c965d7383cdbb9fc3f8939 /fs/xfs/linux-2.6/xfs_lrw.c | |
parent | 0fdfb3757f27b6d802f85e962d9b0f875df17113 (diff) |
[XFS] Improve buffered read throughput by removing unnecessary timer calls
that showed in ´kernel profiles.
SGI-PV: 925163
SGI-Modid: xfs-linux:xfs-kern:23861a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_lrw.c')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_lrw.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/fs/xfs/linux-2.6/xfs_lrw.c b/fs/xfs/linux-2.6/xfs_lrw.c index 3b5fabe8dae9..c04f0c063c58 100644 --- a/fs/xfs/linux-2.6/xfs_lrw.c +++ b/fs/xfs/linux-2.6/xfs_lrw.c | |||
@@ -302,7 +302,7 @@ xfs_read( | |||
302 | xfs_iunlock(ip, XFS_IOLOCK_SHARED); | 302 | xfs_iunlock(ip, XFS_IOLOCK_SHARED); |
303 | 303 | ||
304 | if (likely(!(ioflags & IO_INVIS))) | 304 | if (likely(!(ioflags & IO_INVIS))) |
305 | xfs_ichgtime(ip, XFS_ICHGTIME_ACC); | 305 | xfs_ichgtime_fast(ip, inode, XFS_ICHGTIME_ACC); |
306 | 306 | ||
307 | unlock_isem: | 307 | unlock_isem: |
308 | if (unlikely(ioflags & IO_ISDIRECT)) | 308 | if (unlikely(ioflags & IO_ISDIRECT)) |
@@ -367,7 +367,7 @@ xfs_sendfile( | |||
367 | XFS_STATS_ADD(xs_read_bytes, ret); | 367 | XFS_STATS_ADD(xs_read_bytes, ret); |
368 | 368 | ||
369 | if (likely(!(ioflags & IO_INVIS))) | 369 | if (likely(!(ioflags & IO_INVIS))) |
370 | xfs_ichgtime(ip, XFS_ICHGTIME_ACC); | 370 | xfs_ichgtime_fast(ip, LINVFS_GET_IP(vp), XFS_ICHGTIME_ACC); |
371 | 371 | ||
372 | return ret; | 372 | return ret; |
373 | } | 373 | } |
@@ -732,15 +732,10 @@ start: | |||
732 | } | 732 | } |
733 | } | 733 | } |
734 | 734 | ||
735 | /* | 735 | if (likely(!(ioflags & IO_INVIS))) { |
736 | * On Linux, generic_file_write updates the times even if | ||
737 | * no data is copied in so long as the write had a size. | ||
738 | * | ||
739 | * We must update xfs' times since revalidate will overcopy xfs. | ||
740 | */ | ||
741 | if (!(ioflags & IO_INVIS)) { | ||
742 | xfs_ichgtime(xip, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG); | ||
743 | inode_update_time(inode, 1); | 736 | inode_update_time(inode, 1); |
737 | xfs_ichgtime_fast(xip, inode, | ||
738 | XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG); | ||
744 | } | 739 | } |
745 | 740 | ||
746 | /* | 741 | /* |