OK, lets try the mount/unmount things again, this changes the implementation
of flushing delayed write meta-data which is used during recovery and
unmount. This should be a better way of dealing with the races in there.
Also change how the unmount path gets delayed allocate pages out of a
filesystem, rather than converting all delayed allocate data in the
system we now use the filesystem's knowledge of what is going on to
explicitly flush the files which we know are delayed allocate.
Finally, remove some more dead code from the I/O path, and make some
minor tweaks in the direct read path.
Date: Fri Jun 16 07:46:27 PDT 2000
Workarea: jen.cray.com:/src/lord/xfs-linux.2.4.0-test1
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:64447a
linux/fs/xfs/xfs_buf.h - 1.52
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/xfs/xfs_buf.h.diff?r1=text&tr1=1.52&r2=text&tr2=1.51&f=h
- remove XFS_pbflush it no longer exists.
linux/fs/xfs/xfs_vfsops.c - 1.270
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/xfs/xfs_vfsops.c.diff?r1=text&tr1=1.270&r2=text&tr2=1.269&f=h
- Add extra check to sync to look for delayed blocks on an inode since
VN_DIRTY
does not work.
linux/fs/xfs/linux/xfs_lrw.c - 1.42
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/xfs/linux/xfs_lrw.c.diff?r1=text&tr1=1.42&r2=text&tr2=1.41&f=h
- Fix incore_relse to toss rather than flush pages, this is used for
shuting down a corrupted filesystem, remove some dead code.
linux/fs/xfs/linux/xfs_super.c - 1.69
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/xfs/linux/xfs_super.c.diff?r1=text&tr1=1.69&r2=text&tr2=1.68&f=h
- Remove code which used the pagecleaner to convert delalloc pages
during
unmount, we now use the sync call within xfs to do this, it knows
which
inodes have delalloc space and can make a flush call on them.
linux/include/linux/page_buf.h - 1.47
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/include/linux/page_buf.h.diff?r1=text&tr1=1.47&r2=text&tr2=1.46&f=h
- Add extra parameter to pagebuf_delwri_flush to indicate if it should
wait for I/O completion or not.
linux/fs/pagebuf/page_buf.c - 1.4
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/pagebuf/page_buf.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h
- p_finalize
Change how we wait for a delwri buffer when we are flushing them. We
now issue the writes in a synchronous mode and use iowait later to
confirm them have completed. There is still the issue of waiting for
writes which were started by the background thread, but this should
be a better approach than before.
linux/fs/pagebuf/page_buf_io.c - 1.3
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/pagebuf/page_buf_io.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h
- A bit more I/O path cleanup, plus some minor tweaks in the direct
read path.
|