On Sat, 22 Mar 2014 13:03:22 -0400 tytso@xxxxxxx wrote: > 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. Whoever was saying that had the wrong end of the stick. It's all very odd. > 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. Well. Converting an existing retry-for-ever caller to GFP_NOFAIL is good. Adding new retry-for-ever code is not good. > In any case, __GFP_NOFAIL is in the code comments, so a casual > searcher would find it pretty quickly with a "git grep". There's that. But retry-for-ever is a common operation which the core allocator can implement and maintain better than remote callsites. -- To unsubscribe from this list: send the line "unsubscribe reiserfs-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html