aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/linux-2.6/xfs_lrw.c
diff options
context:
space:
mode:
authorNathan Scott <nathans@sgi.com>2005-11-01 19:43:58 -0500
committerNathan Scott <nathans@sgi.com>2005-11-01 19:43:58 -0500
commit4aeb664c2561c0bae18d7a3a141d7d2acf126da1 (patch)
tree832e72237a69b76bf4c965d7383cdbb9fc3f8939 /fs/xfs/linux-2.6/xfs_lrw.c
parent0fdfb3757f27b6d802f85e962d9b0f875df17113 (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.c15
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
307unlock_isem: 307unlock_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 /*