Re: ramdisk corruption problems - was: RE: pivot_root and initrd

Alexander Viro (viro@math.psu.edu)
Sun, 30 Dec 2001 01:33:24 -0500 (EST)


On Sat, 29 Dec 2001, Andrew Morton wrote:

> Would it be necessary to preallocate the holes at mmap() time? Mad
> hand-waving: Could we not perform the instantiation at pagefault time,
> and give the caller SIGBUS if we cannot allocate the blocks? Or if
> there's an IO error, or quota exceeded.

Allocation at mmap() Is Not Going To Happen. Consider it vetoed.
There are applications that use mmap() on large and very sparse
files.

> Question: can someone please define BH_New? Its lifecycle seems
> very vague. We never actually seem to *clear* it anywhere for
> ext2, and it appears that the kernel will keep on treating a
> clearly non-new buffer as "new" all the time. ext3 explicitly
> clears BH_New in get_block(), if it finds the block was already
> present in the file. I did this because we need the newness
> info for internal purposes.

It should be reset when we submit IO. Breakage related to failing
allocation is indeed not new, but that's a long story. And no,
"allocate on mmap()" is not a fix.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/