jbd: Revert "jbd: remove dependency on __GFP_NOFAIL"
authorJan Kara <jack@suse.cz>
Thu, 31 Oct 2013 19:37:15 +0000 (20:37 +0100)
committerJan Kara <jack@suse.cz>
Thu, 31 Oct 2013 19:37:15 +0000 (20:37 +0100)
This reverts commit 05713082ab7690a2b22b044cfc867f346c39cd2d. The idea
to remove __GFP_NOFAIL was opposed by Andrew Morton. Although mm guys do
want to get rid of __GFP_NOFAIL users, opencoding the allocation retry
is even worse.

See emails following
http://www.gossamer-threads.com/lists/linux/kernel/1809153#1809153

Signed-off-by: Jan Kara <jack@suse.cz>
fs/jbd/transaction.c

index be0c39b..aa603e0 100644 (file)
@@ -26,7 +26,6 @@
 #include <linux/mm.h>
 #include <linux/highmem.h>
 #include <linux/hrtimer.h>
-#include <linux/backing-dev.h>
 
 static void __journal_temp_unlink_buffer(struct journal_head *jh);
 
@@ -100,10 +99,11 @@ static int start_this_handle(journal_t *journal, handle_t *handle)
 
 alloc_transaction:
        if (!journal->j_running_transaction) {
-               new_transaction = kzalloc(sizeof(*new_transaction), GFP_NOFS);
+               new_transaction = kzalloc(sizeof(*new_transaction),
+                                               GFP_NOFS|__GFP_NOFAIL);
                if (!new_transaction) {
-                       congestion_wait(BLK_RW_ASYNC, HZ/50);
-                       goto alloc_transaction;
+                       ret = -ENOMEM;
+                       goto out;
                }
        }