doio now runs on a fairly empty file system even up to 5 threads.
There are still problems here, but this take fixes several.
Time updates now appear correctly. There is a problem because
xfs "revalidates" by overwriting the Linux inode times with the
XFS inode times. But, the I/O path doesn't update the XFS inode
times. This take adds the setting of the XFS inode times in read/write
and mmap.
Modid: 2.3.99pre2-xfs:slinx:57499a
Date: Tue Apr 11 13:00:14 PDT 2000
Workarea: clink.americas.sgi.com:/data/clink/io/mostek/slinx-xfs
The following file(s) were checked into:
bonnie.engr.sgi.com:/isms/slinx/2.3.99pre2-xfs
linux/fs/xfs/linux/xfs_file.c - 1.25
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/xfs/linux/xfs_file.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h
- Add a new wrapper and update the atime when mmap'ing a file.
This should be removed if we ever stop using the xfs times
in revalidate.
linux/fs/xfs/linux/xfs_iops.c - 1.46
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/xfs/linux/xfs_iops.c.diff?r1=text&tr1=1.46&r2=text&tr2=1.45&f=h
- Use lock_page instead of LockPage. UnlockPage does a wakeup
but LockPage doesn't check to see if set.
linux/fs/xfs/linux/xfs_lrw.c - 1.34
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/xfs/linux/xfs_lrw.c.diff?r1=text&tr1=1.34&r2=text&tr2=1.33&f=h
- Update times at the start of write and at the end of read
since we overwrite the linux inode times in revalidate. If
we ever stop this, these calls to xfs_ichgtime should be deleted.
In the convert path, drop the lock unless we get into
xfs_iomap_convert().
In the direct case, shring the allocation request to the size of a
hole
if we find a hole. This eliminates the case where we incorrectly
mark PBMF_NEW when we convert a hole + allocated space into a larger
allocated space.
linux/kernel/ksyms.c - 1.38
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/kernel/ksyms.c.diff?r1=text&tr1=1.38&r2=text&tr2=1.37&f=h
- export lock_page for XFS so it can find it as a module.
|