xfs
[Top] [All Lists]

TAKE - xfs delayed allocate fixups and bug fixes

To: linux-xfs@xxxxxxxxxxx
Subject: TAKE - xfs delayed allocate fixups and bug fixes
From: Steve Lord <lord@xxxxxxx>
Date: Tue, 19 Mar 2002 11:39:54 -0600
Sender: owner-linux-xfs@xxxxxxxxxxx
In response to comments from Andrea Archangeli and Andrew Morton,
and a bug report from Andrew Tridgell (is that enough Andrews
in one sentence!), this is a major cleanup of the handling of
delayed allocate pages in xfs and its interactions with the
mainline kernel.

XFS now has a releasepage method - this replaces a bunch of code
in fs/buffer.c which it turns out could never really have worked.
The code in fs/buffer.c has been simplified, and changed to
protect against spinning on the cpu - which some people had
reported as bflushd spinning on the cpu.

It also fixes a corruption problem which Andrew Tridgell reported
under very heavy write pressure, and a deadlock under very heavy
mmap write pressure. This appears to be very hard to hit if that
is any consolation, I think this bug has been around since early
January.

Steve

Date:  Tue Mar 19 09:30:43 PST 2002
Workarea:  jen.americas.sgi.com:/src/lord/xfs-andrea

The following file(s) were checked into:
  bonnie.engr.sgi.com:/isms/slinx/2.4.x-xfs


Modid:  2.4.x-xfs:slinx:114422a
linux/fs/buffer.c - 1.103
        - Revamp the delayed allocate handling, there is less of it now and
          problems with bdflush spinning should go away.

linux/drivers/block/ll_rw_blk.c - 1.81
        - Move the trap for delayed allocate buffer heads from the ll_rw_block
          code to submit_bh. This traps all of them rather than just some of 
them.

linux/fs/xfs/linux/xfs_iops.c - 1.128
        - Add a releasepage method to xfs.

linux/fs/xfs/pagebuf/page_buf_io.c - 1.17
        - Add a release_page method, this converts delalloc pages to real so
          that try_to_free_buffers can function on them. Revamp 
pagebuf_write_full_page,
          it now does not unlock the page, that happens in I/O completion.

linux/fs/xfs/pagebuf/page_buf.h - 1.8
        - definition for pagebuf_release_page



<Prev in Thread] Current Thread [Next in Thread>
  • TAKE - xfs delayed allocate fixups and bug fixes, Steve Lord <=