This is a workaround for the full filesystem corruption by turning off
a code path which decides to convert an extent in place during a write
call.
Date: Mon Nov 20 12:00:31 PST 2000
Workarea: jen.americas.sgi.com:/src/lord/xfs-linux.2.4
The following file(s) were checked into:
bonnie.engr.sgi.com:/isms/slinx/2.4.x-xfs
Modid: 2.4.x-xfs:slinx:78571a
linux/fs/pagebuf/page_buf_io.c - 1.35
- Turn off the call to __pb_write_or_convert_bmap in
__pb_block_commit_write_async
as this was converting a delalloc extent to a smaller real extent in
the
full (or fragmented) disk case and not taking account of the smaller
size.
This tended to lead to walking off the end of an extent when assigning
block numbers to pages. The real fix would be to rewrite the code to
cope
with arrays of extents rather than processing them one at a time.
|