Re: [RFC 1/1] fs/reiserfs/journal.c: Remove obsolete __GFP_NOFAIL

tytso
2014-03-22T17:03:36Z

On Fri, Mar 21, 2014 at 01:00:55PM -0700, Andrew Morton wrote:
>
> The whole point of __GFP_NOFAIL is to centralise this
> wait-for-memory-for-ever operation. So it is implemented in a common
> (core) place and so that we can easily locate these problematic
> callers.
>
> is exactly wrong. Yes, we'd like __GFP_NOFAIL to go away, but it
> cannot go away until buggy callsites such as this one are *fixed*.
> Removing the __GFP_NOFAIL usage simply hides the buggy code from casual
> searchers.

The change to jbd2 was made in July 2010, back when the "we must
exterminate GFP_NOFAIL at all costs" brigade was in high gear, and the
folks claiming that GFP_FAIL *would* go away, come hell or high water,
was a bit more emphatic.

I'll note that since 2011, there has been precious little movement on
removing the final few callers of GFP_NOFAIL, and we still have a bit
under two dozen of them, including a new one in fs/buffer.c that was
added in 2013.

In any case, __GFP_NOFAIL is in the code comments, so a casual
searcher would find it pretty quickly with a "git grep".

- Ted