linux/fs/gfs2
Bob Peterson 44ad37d69b GFS2: filesystem hang caused by incorrect lock order
This patch fixes a deadlock in GFS2 where two processes are trying
to reclaim an unlinked dinode:
One holds the inode glock and calls gfs2_lookup_by_inum trying to look
up the inode, which it can't, due to I_FREEING.  The other has set
I_FREEING from vfs and is at the beginning of gfs2_delete_inode
waiting for the glock, which is held by the first.  The solution is to
add a new non_block parameter to the gfs2_iget function that causes it
to return -ENOENT if the inode is being freed.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2011-04-18 15:23:50 +01:00
..
Kconfig
Makefile
acl.c
acl.h
aops.c GFS2: write_end error path fails to unlock transaction lock 2011-04-18 15:22:35 +01:00
bmap.c Fix common misspellings 2011-03-31 11:26:23 -03:00
bmap.h
dentry.c
dir.c GFS2: filesystem hang caused by incorrect lock order 2011-04-18 15:23:50 +01:00
dir.h
export.c
file.c GFS2: directly write blocks past i_size 2011-04-18 15:22:52 +01:00
gfs2.h
glock.c Fix common misspellings 2011-03-31 11:26:23 -03:00
glock.h
glops.c GFS2: Don't try to deallocate unlinked inodes when mounted ro 2011-04-18 15:23:12 +01:00
glops.h
incore.h
inode.c GFS2: filesystem hang caused by incorrect lock order 2011-04-18 15:23:50 +01:00
inode.h GFS2: filesystem hang caused by incorrect lock order 2011-04-18 15:23:50 +01:00
lock_dlm.c
log.c
log.h
lops.c
lops.h
main.c
meta_io.c
meta_io.h
ops_fstype.c GFS2: filesystem hang caused by incorrect lock order 2011-04-18 15:23:50 +01:00
ops_inode.c
quota.c
quota.h
recovery.c
recovery.h
rgrp.c GFS2: filesystem hang caused by incorrect lock order 2011-04-18 15:23:50 +01:00
rgrp.h
super.c GFS2: filesystem hang caused by incorrect lock order 2011-04-18 15:23:50 +01:00
super.h
sys.c
sys.h
trace_gfs2.h
trans.c
trans.h
util.c
util.h
xattr.c
xattr.h