As _xfs_force_shutdown was written, it tried to schedule in an interrupt context
and caused a BUG() to be thrown.
Also, even if we didn't try to deal with leftover buffers in the interrupt,
they subsequently had their delalloc flags removed, and thus queued up
to clobber block 0 (1,2,3) on the disk, thus corrupting the filesystem.
So, remove the in-interrupt activity, and if we later get a dellalloc buffer
that bmap can't find a home for, just throw it away.
Date: Thu Jan 17 13:43:10 PST 2002
Workarea: stout.americas.sgi.com:/localhome/eric/2.4.x-xfs/workarea-reallyclean
The following file(s) were checked into:
bonnie.engr.sgi.com:/isms/slinx/2.4.x-xfs
Modid: 2.4.x-xfs:slinx:109821a
linux/fs/xfs/xfs_rw.c - 1.349
- Don't try to clear out remaining delwri buffers in
_xfs_force_shutdown,
we are in an interrupt context and can't sleep, just let the
buffers get caught as they try to get on-disk.
linux/fs/xfs/pagebuf/page_buf_io.c - 1.3
- Don't just clear delay flag on bmap failure, wipe out the buffer
|