ext4: Don't do GFP_NOFS allocations after taking ext4_lock_group
We can't do GFP_NOFS allocation after taking ext4_lock_group
BUG: sleeping function called from invalid context at mm/slab.c:3054
in_atomic():1, irqs_disabled():0
1 lock held by vi/2426:
#0: (&ei->i_data_sem){----}, at: [<
c01cf665>] ext4_release_file+0x23/0x66
Pid: 2426, comm: vi Not tainted 2.6.25-rc7 #24
[<
c011a3dc>] __might_sleep+0xbe/0xc5
[<
c01620c9>] kmem_cache_alloc+0x22/0xa6
[<
c01e382a>] ext4_mb_release_inode_pa+0x73/0x1b3
[<
c01e6adf>] ext4_mb_discard_inode_preallocations+0x22d/0x2d4
[<
c013000a>] ? param_set_ushort+0x32/0x39
[<
c01ceba1>] ext4_discard_reservation+0x27/0x6a
[<
c01cf66c>] ext4_release_file+0x2a/0x66
[<
c0165bd6>] __fput+0xae/0x155
[<
c0165e46>] fput+0x17/0x19
[<
c0163756>] filp_close+0x50/0x5a
[<
c01647c0>] sys_close+0x71/0xad
[<
c0104aba>] sysenter_past_esp+0x5f/0xa5
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>