jbd2: revert must-not-fail allocation loops back to GFP_NOFAIL
authorMichal Hocko <mhocko@suse.cz>
Mon, 8 Jun 2015 14:53:10 +0000 (10:53 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 8 Jun 2015 14:53:10 +0000 (10:53 -0400)
commit6ccaf3e2f302b6af8d9e17ce4e7f0af26b6baa0e
treecc3a37a205d0fc980ff9e9788daf9526a0976532
parent3dbb5eb9a3aa04f40e551338eee5e8d06f352fe8
jbd2: revert must-not-fail allocation loops back to GFP_NOFAIL

This basically reverts 47def82672b3 (jbd2: Remove __GFP_NOFAIL from jbd2
layer). The deprecation of __GFP_NOFAIL was a bad choice because it led
to open coding the endless loop around the allocator rather than
removing the dependency on the non failing allocation. So the
deprecation was a clear failure and the reality tells us that
__GFP_NOFAIL is not even close to go away.

It is still true that __GFP_NOFAIL allocations are generally discouraged
and new uses should be evaluated and an alternative (pre-allocations or
reservations) should be considered but it doesn't make any sense to lie
the allocator about the requirements. Allocator can take steps to help
making a progress if it knows the requirements.

Signed-off-by: Michal Hocko <mhocko@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Acked-by: David Rientjes <rientjes@google.com>
fs/jbd2/journal.c
fs/jbd2/transaction.c