More cherrypicking from Steve's workarea.
We weren't truncating properly at inactive time when there
were "delayed" blocks involved.
Make the final reclaimation out of "sync" more efficient
by not waiting for the XFS inode locks, use conditional
obtains, if it fails, we'll get back to it next sync
cycle.
Date: Fri Jul 7 11:36:17 PDT 2000
Workarea: tiki.cray.com:/data/clink/io/jtk/work-linux2.4-test1-tot
The following file(s) were checked into:
bonnie.engr.sgi.com:/isms/slinx/2.4.0-test1-xfs
Modid: 2.4.0-test1-xfs:slinx:66112a
linux/fs/xfs/xfs_vnodeops.c - 1.460
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/xfs/xfs_vnodeops.c.diff?r1=text&tr1=1.460&r2=text&tr2=1.459&f=h
- Fix the locking/unlocking in xfs_finish_reclaim for
the case where it's called with the locks already held.
At inactive time, if there's i_delayed_blks allocated
to the inode, we need to call xfs_inactive_free_eofblocks.
linux/fs/xfs/xfs_vfsops.c - 1.273
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/xfs/xfs_vfsops.c.diff?r1=text&tr1=1.273&r2=text&tr2=1.272&f=h
- At sync time, when we discover a vnode in need of
reclaimation, use conditional locking, and skip it
if necessary (don't wait on it).
|