linux/fs/gfs2
Russell Cattelan ddee76089c [GFS2] Fix unlink deadlocks
Move the glock acquisition to outside of the transactions.

Lock odering must be preserved in order to prevent ABBA
deadlocks. The current gfs2_change_nlink code would tries
to grab the glock after having started a transaction and thus is holding
the log lock. This is inconsistent with other code paths in
gfs that grab the resource group glock prior to staring
a tranactions.

One problem with this fix is that the resource group
lock is always grabbed now even if the inode still has
ref count and can not be marked for unlink.

Signed-off-by: Russell Cattelan <cattelan@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2007-02-05 13:38:17 -05:00
..
locking [GFS2] make lock_dlm drop_count tunable in sysfs 2007-02-05 13:38:01 -05:00
acl.c
acl.h
bmap.c [GFS2] use CURRENT_TIME_SEC instead of get_seconds in gfs2 2007-02-05 13:37:38 -05:00
bmap.h
daemon.c
daemon.h
dir.c [GFS2] use CURRENT_TIME_SEC instead of get_seconds in gfs2 2007-02-05 13:37:38 -05:00
dir.h [GFS2] Clean up/speed up readdir 2007-02-05 13:37:04 -05:00
eaops.c
eaops.h
eattr.c [GFS2] more CURRENT_TIME_SEC 2007-02-05 13:38:11 -05:00
eattr.h
gfs2.h
glock.c [GFS2] Put back semaphore to avoid umount problem 2007-02-05 13:38:14 -05:00
glock.h [GFS2] Tidy up glops calls 2007-02-05 13:37:26 -05:00
glops.c [GFS2] Tidy up glops calls 2007-02-05 13:37:26 -05:00
glops.h
incore.h [GFS2] Tidy up glops calls 2007-02-05 13:37:26 -05:00
inode.c [GFS2] Fix unlink deadlocks 2007-02-05 13:38:17 -05:00
inode.h [GFS2] make gfs2_change_nlink_i() static 2007-02-05 13:36:49 -05:00
Kconfig [GFS2/DLM] fix GFS2 circular dependency 2007-02-05 13:38:08 -05:00
lm.c [GFS2] don't try to lockfs after shutdown 2007-02-05 13:35:44 -05:00
lm.h
locking.c
log.c
log.h
lops.c [GFS2] Fix list corruption in lops.c 2007-02-05 13:37:56 -05:00
lops.h
main.c [PATCH] slab: remove kmem_cache_t 2006-12-07 08:39:25 -08:00
Makefile
meta_io.c
meta_io.h
mount.c
mount.h
ondisk.c
ops_address.c [GFS2] Add writepages for "data=writeback" mounts 2007-02-05 13:37:01 -05:00
ops_address.h
ops_dentry.c
ops_dentry.h
ops_export.c [GFS2] Remove local exclusive glock mode 2007-02-05 13:37:20 -05:00
ops_export.h
ops_file.c [GFS2] Clean up/speed up readdir 2007-02-05 13:37:04 -05:00
ops_file.h
ops_fstype.c [PATCH] Revert bd_mount_mutex back to a semaphore 2007-01-11 18:18:21 -08:00
ops_fstype.h
ops_inode.c [GFS2] Fix unlink deadlocks 2007-02-05 13:38:17 -05:00
ops_inode.h
ops_super.c [GFS2] Remove the "greedy" function from glock.[ch] 2007-02-05 13:37:14 -05:00
ops_super.h
ops_vm.c [GFS2] Remove the "greedy" function from glock.[ch] 2007-02-05 13:37:14 -05:00
ops_vm.h
quota.c
quota.h
recovery.c [GFS2] Fix indent in recovery.c 2006-12-05 13:34:17 -05:00
recovery.h
rgrp.c
rgrp.h
super.c [GFS2] Remove local exclusive glock mode 2007-02-05 13:37:20 -05:00
super.h
sys.c [GFS2] Remove the "greedy" function from glock.[ch] 2007-02-05 13:37:14 -05:00
sys.h
trans.c
trans.h
util.c [PATCH] slab: remove kmem_cache_t 2006-12-07 08:39:25 -08:00
util.h Merge master.kernel.org:/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw 2006-12-07 09:13:20 -08:00