Re: ramdisk corruption problems - was: RE: pivot_root and initrd kern el panic woes

Andrea Arcangeli (andrea@suse.de)
Mon, 31 Dec 2001 01:08:17 +0100


On Sat, Dec 29, 2001 at 10:38:14PM -0800, Andrew Morton wrote:
> Alexander Viro wrote:
> >
> > 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.
>
> I think Andrea was referring to simply reserving the necessary
> amount of disk space, rather than actually instantiating the
> blocks. But even that would be a big problem for the applications

correct.

> which you describe.

Nod.

>
> > > 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.
>
> well... It isn't. And I'd like a chance to review/test any

see the other email, it's all right as far I can tell, it doesn't need
to be resetted ever. only mapped bh are bh_new so you will never care
about bh_new any longer because you will never need any further
get_block on the same bh.

> proposed changes in this area which are outside specific filesystems...
>
> > Breakage related to failing allocation is indeed not new, but
> > that's a long story. And no, "allocate on mmap()" is not a fix.
>
> Yup. But what *is* the fix? (filemap_nopage?)
>
> -

Andrea
-
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/