summaryrefslogtreecommitdiffstats
path: root/fs/ext4/super.c
diff options
context:
space:
mode:
authorDmitry Monakhov <dmonakhov@openvz.org>2014-11-25 19:08:04 +0100
committerTheodore Ts'o <tytso@mit.edu>2014-11-25 19:08:04 +0100
commit4fdb5543183d027a19805b72025b859af73d0863 (patch)
tree708afd14a45f9f38f37dfb8c4bfb2b1ef045a37b /fs/ext4/super.c
parentext4: introduce aging to extent status tree (diff)
downloadlinux-4fdb5543183d027a19805b72025b859af73d0863.tar.xz
linux-4fdb5543183d027a19805b72025b859af73d0863.zip
ext4: cleanup GFP flags inside resize path
We must use GFP_NOFS instead GFP_KERNEL inside ext4_mb_add_groupinfo and ext4_calculate_overhead() because they are called from inside a journal transaction. Call trace: ioctl ->ext4_group_add ->journal_start ->ext4_setup_new_descs ->ext4_mb_add_groupinfo -> GFP_KERNEL ->ext4_flex_group_add ->ext4_update_super ->ext4_calculate_overhead -> GFP_KERNEL ->journal_stop Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to '')
-rw-r--r--fs/ext4/super.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 48318497e8e9..b643009fddfe 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -3300,7 +3300,7 @@ int ext4_calculate_overhead(struct super_block *sb)
struct ext4_super_block *es = sbi->s_es;
ext4_group_t i, ngroups = ext4_get_groups_count(sb);
ext4_fsblk_t overhead = 0;
- char *buf = (char *) get_zeroed_page(GFP_KERNEL);
+ char *buf = (char *) get_zeroed_page(GFP_NOFS);
if (!buf)
return -ENOMEM;