aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext4/mballoc.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ext4/mballoc.c')
-rw-r--r--fs/ext4/mballoc.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index f6aedf88da43..34b610ea5030 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -4816,18 +4816,12 @@ do_more:
4816 /* 4816 /*
4817 * blocks being freed are metadata. these blocks shouldn't 4817 * blocks being freed are metadata. these blocks shouldn't
4818 * be used until this transaction is committed 4818 * be used until this transaction is committed
4819 *
4820 * We use __GFP_NOFAIL because ext4_free_blocks() is not allowed
4821 * to fail.
4819 */ 4822 */
4820 retry: 4823 new_entry = kmem_cache_alloc(ext4_free_data_cachep,
4821 new_entry = kmem_cache_alloc(ext4_free_data_cachep, GFP_NOFS); 4824 GFP_NOFS|__GFP_NOFAIL);
4822 if (!new_entry) {
4823 /*
4824 * We use a retry loop because
4825 * ext4_free_blocks() is not allowed to fail.
4826 */
4827 cond_resched();
4828 congestion_wait(BLK_RW_ASYNC, HZ/50);
4829 goto retry;
4830 }
4831 new_entry->efd_start_cluster = bit; 4825 new_entry->efd_start_cluster = bit;
4832 new_entry->efd_group = block_group; 4826 new_entry->efd_group = block_group;
4833 new_entry->efd_count = count_clusters; 4827 new_entry->efd_count = count_clusters;