Don't wait for pending I/Os when purging blocks beyond eof.
On last close of a file we purge blocks beyond eof. The same
code is used when we truncate the file size down. In this case
we need to wait for any pending I/Os for dirty pages beyond the
new eof. For the last close case we are not changing the file
size and therefore do not need to wait for any I/Os to complete.
This fixes a performance bottleneck where writes into the page
cache and cache flushes can become mutually exclusive.
Date: Mon Dec 10 16:59:09 AEDT 2007
Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-vniowait
Inspected by: pleckie
Author: lachlan
The following file(s) were checked into:
longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb
Modid: xfs-linux-melb:xfs-kern:30220a
fs/xfs/xfs_inode.c - 1.489 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.489&r2=text&tr2=1.488&f=h
- Don't wait for pending I/Os when purging blocks beyond eof.
|