xfs
[Top] [All Lists]

TAKE - more mount/unmount fixups plus minor I/O path tweaks

To: unlisted-recipients:; (no To-header on input)
Subject: TAKE - more mount/unmount fixups plus minor I/O path tweaks
From: lord@xxxxxxx
Date: Fri, 16 Jun 2000 09:49:14 -0500
Sender: owner-linux-xfs@xxxxxxxxxxx
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.



<Prev in Thread] Current Thread [Next in Thread>
  • TAKE - more mount/unmount fixups plus minor I/O path tweaks, lord <=