[Devel] Re: [PATCH] remove BUG() in possible but rare condition

Glauber Costa glommer at parallels.com
Wed Apr 11 13:51:57 PDT 2012


On 04/11/2012 05:26 PM, Andrew Morton wrote:
>>
>> >    failed:
>> >  -	BUG();
>> >    	unlock_page(page);
>> >    	page_cache_release(page);
>> >    	return NULL;
> Cute.
>
> AFAICT what happened was that in my April 2002 rewrite of this code I
> put a non-fatal buffer_error() warning in that case to tell us that
> something bad happened.
>
> Years later we removed the temporary buffer_error() and mistakenly
> replaced that warning with a BUG().  Only it*can*  happen.
>
> We can remove the BUG() and fix up callers, or we can pass retry=1 into
> alloc_page_buffers(), so grow_dev_page() "cannot fail".  Immortal
> functions are a silly fiction, so we should remove the BUG() and fix up
> callers.
>
Any particular caller you are concerned with ?

As I mentioned, this function already returns NULL for other reason - 
that seem even more probable than this specific failure. So whoever is
not checking this return value, is already broken without this patch as 
well.





More information about the Devel mailing list