Re: [BUG] loop.c oopses

From: Andrew Morton (akpm@zip.com.au)
Date: Tue Jul 16 2002 - 03:52:40 EST


Jens Axboe wrote:
>
> On Tue, Jul 16 2002, Andrew Morton wrote:
> > William Lee Irwin III wrote:
> > >
> > > loop.c oopses when bio_copy() returns NULL. This was encountered while
> > > running dbench 16 on a loopback-mounted reiserfs filesystem.
> >
> > ugh. GFP_NOIO is evil. I guess it's better to add __GFP_HIGH
> > there, but it's not a happy solution.
>
> GFP_NOIO has __GFP_WAIT set, so bio_copy -> bio_alloc -> mempool_alloc
> should never fail. Puzzled.
>

Presumably the loop driver was called from within shrink_cache(),
as PF_MEMALLOC. Those allocations can fail.

That's maybe wrong - if there are a decent number of pages
under writeback then we should be able to just wait it out.
But it gets tricky with the loop driver...

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



This archive was generated by hypermail 2b29 : Tue Jul 23 2002 - 22:00:19 EST