diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c index 5898d92ba19f..61ee009717f1 100644 --- a/fs/ext4/mballoc.c +++ b/fs/ext4/mballoc.c @@ -5656,9 +5656,11 @@ void ext4_discard_preallocations(struct inode *inode) list_for_each_entry_safe(pa, tmp, &list, u.pa_tmp_list) { BUG_ON(pa->pa_type != MB_INODE_PA); group = ext4_get_group_number(sb, pa->pa_pstart); + gfp_t flags = GFP_NOFS; + if (!(current->flags & PF_MEMALLOC)) + flags |= __GFP_NOFAIL;