ext3: fix wrong gfp type under transaction
There are several places where we make allocations with GFP_KERNEL while under a transaction, which could lead to an assertion panic or lockup if under memory pressure. This patch switches these problem areas to use GFP_NOFS to keep these problems from happening. Signed-off-by: Josef Bacik <jbacik@redhat.com> Cc: <linux-ext4@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
ffda6857c8
commit
c587f0c0a6
@@ -485,7 +485,7 @@ static int add_new_gdb(handle_t *handle, struct inode *inode,
|
||||
goto exit_dindj;
|
||||
|
||||
n_group_desc = kmalloc((gdb_num + 1) * sizeof(struct buffer_head *),
|
||||
GFP_KERNEL);
|
||||
GFP_NOFS);
|
||||
if (!n_group_desc) {
|
||||
err = -ENOMEM;
|
||||
ext3_warning (sb, __FUNCTION__,
|
||||
@@ -568,7 +568,7 @@ static int reserve_backup_gdb(handle_t *handle, struct inode *inode,
|
||||
int res, i;
|
||||
int err;
|
||||
|
||||
primary = kmalloc(reserved_gdb * sizeof(*primary), GFP_KERNEL);
|
||||
primary = kmalloc(reserved_gdb * sizeof(*primary), GFP_NOFS);
|
||||
if (!primary)
|
||||
return -ENOMEM;
|
||||
|
||||
|
Reference in New Issue
Block a user