Messages in this thread | | | Date | Wed, 11 Apr 2012 17:51:57 -0300 | From | Glauber Costa <> | Subject | Re: [PATCH] remove BUG() in possible but rare condition |
| |
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.
| |