Re: [BUG] reiser4: page lock recursion in reiser4_write_extent

From: Vladimir V. Saveliev
Date: Thu Mar 15 2007 - 13:35:53 EST


Hello

On Wednesday 14 March 2007 08:40, Nate Diller wrote:
> This little code snippet seems to have a page_lock recursion, in
> addition to overall looking particularly fragile to me. It seems to
> be handling the case where a page needs to be brought uptodate because
> a partial page write is being done. The page gets locked as many as 3
> times, each checking PageUptodate, however the two failure cases here
> go BUG() instead of returning an error.

yes, these are to be returned errors

> I'm starting to think that
> somehow the whole suspect branch just never gets taken, because
> otherwise I would expect to see bug reports related to -EIO, -ENOMEM,
> etc causing this to barf.

>
[snip]
>
> BOOM!!!

2.6.21-rc3-mm2 has this bug fixed.

> lock_page(page);
> if (!PageUptodate(page) && to_page != PAGE_CACHE_SIZE) {
>
> ---
>
> NATE
>
>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/