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

Vladimir V. Saveliev
2007-03-15T17:35:38Z

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