[GFS2] Fix deadlock in memory allocation
We must not call GFP_KERNEL memory allocations while we are holding the log lock (read or write) since that may trigger a log flush resulting in a deadlock. Eventually we need to fix the locking in log.c, for now this solves the problem at the expense of freeing up memory as fast as we would like to. This needs to be revisited later on. Cc: Kevin Anderson <kanderso@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
This commit is contained in:
parent
4340fe6253
commit
f3bba03fd1
|
@ -75,7 +75,7 @@ struct inode *gfs2_aspace_get(struct gfs2_sbd *sdp)
|
|||
|
||||
aspace = new_inode(sdp->sd_vfs);
|
||||
if (aspace) {
|
||||
mapping_set_gfp_mask(aspace->i_mapping, GFP_KERNEL);
|
||||
mapping_set_gfp_mask(aspace->i_mapping, GFP_NOFS);
|
||||
aspace->i_mapping->a_ops = &aspace_aops;
|
||||
aspace->i_size = ~0ULL;
|
||||
aspace->u.generic_ip = NULL;
|
||||
|
|
Loading…
Reference in a new issue