Steven Whitehouse
363275216c
[GFS2] Reordering in deallocation to avoid recursive locking
...
Despite my earlier careful search, there was a recursive lock left
in the deallocation code. This removes it. It also should speed up
deallocation be reducing the number of locking operations which take
place by using two "try lock" operations on the two locks involved in
inode deallocation which allows us to grab the locks out of order
(compared with NFS which grabs the inode lock first and the iopen
lock later). It is ok for us to fail while doing this since if it
does fail it means that someone else is still using the inode and
thus it wouldn't be possible to deallocate anyway.
This fixes the bug reported to me by Rob Kenna.
Cc: Rob Kenna <[email protected] >
Signed-off-by: Steven Whitehouse <[email protected] >
2006-04-28 10:46:21 -04:00
..
locking
[GFS2] Remove redundant casts to/from void
2006-04-27 11:25:45 -04:00
acl.c
[GFS2] Macros removal in gfs2.h
2006-02-27 17:23:27 -05:00
acl.h
[GFS2] The core of GFS2
2006-01-16 16:50:04 +00:00
bits.c
[GFS2] Macros removal in gfs2.h
2006-02-27 17:23:27 -05:00
bits.h
[GFS2] The core of GFS2
2006-01-16 16:50:04 +00:00
bmap.c
[GFS2] Tidy up dir code as per Christoph Hellwig's comments
2006-04-24 10:07:13 -04:00
bmap.h
[GFS2] Remove unused prototype
2006-01-30 13:36:53 +00:00
daemon.c
[GFS2] Tidy up daemon.c
2006-04-24 13:13:56 -04:00
daemon.h
[GFS2] The core of GFS2
2006-01-16 16:50:04 +00:00
dir.c
[GFS2] Tidy up dir code as per Christoph Hellwig's comments
2006-04-24 10:07:13 -04:00
dir.h
[GFS2] Tidy up dir code as per Christoph Hellwig's comments
2006-04-24 10:07:13 -04:00
eaops.c
[GFS2] Macros removal in gfs2.h
2006-02-27 17:23:27 -05:00
eaops.h
[GFS2] The core of GFS2
2006-01-16 16:50:04 +00:00
eattr.c
[GFS2] Macros removal in gfs2.h
2006-02-27 17:23:27 -05:00
eattr.h
[GFS2] Macros removal in gfs2.h
2006-02-27 17:23:27 -05:00
format.h
[GFS2] The core of GFS2
2006-01-16 16:50:04 +00:00
gfs2.h
[GFS2] Macros removal in gfs2.h
2006-02-27 17:23:27 -05:00
glock.c
[GFS2] Reordering in deallocation to avoid recursive locking
2006-04-28 10:46:21 -04:00
glock.h
[GFS2] Remove GL_NEVER_RECURSE flag
2006-04-26 14:58:26 -04:00
glops.c
[GFS2] Fix a ref count bug and other clean ups
2006-04-07 11:17:32 -04:00
glops.h
[GFS2] The core of GFS2
2006-01-16 16:50:04 +00:00
incore.h
[GFS2] Don't do recursive locking in glock layer
2006-04-26 13:21:55 -04:00
inode.c
[GFS2] Reordering in deallocation to avoid recursive locking
2006-04-28 10:46:21 -04:00
inode.h
[GFS2] Reordering in deallocation to avoid recursive locking
2006-04-28 10:46:21 -04:00
Kconfig
[GFS2] Tidy up Makefile & Kconfig
2006-04-24 14:14:42 -04:00
lm.c
[GFS2] Macros removal in gfs2.h
2006-02-27 17:23:27 -05:00
lm.h
[GFS2] The core of GFS2
2006-01-16 16:50:04 +00:00
lm_interface.h
[GFS2] The core of GFS2
2006-01-16 16:50:04 +00:00
locking.c
[GFS2] sem -> mutex conversion in locking.c
2006-04-21 15:10:46 -04:00
log.c
[GFS2] sem -> mutex conversion in locking.c
2006-04-21 15:10:46 -04:00
log.h
[GFS2] Fix a ref count bug and other clean ups
2006-04-07 11:17:32 -04:00
lops.c
[GFS2] Fix a ref count bug and other clean ups
2006-04-07 11:17:32 -04:00
lops.h
[GFS2] Fix a ref count bug and other clean ups
2006-04-07 11:17:32 -04:00
lvb.c
[GFS2] Macros removal in gfs2.h
2006-02-27 17:23:27 -05:00
lvb.h
[GFS2] Macros removal in gfs2.h
2006-02-27 17:23:27 -05:00
main.c
[GFS2] Add gfs2meta filesystem
2006-03-02 16:33:41 -05:00
Makefile
[GFS2] Tidy up Makefile & Kconfig
2006-04-24 14:14:42 -04:00
meta_io.c
[GFS2] Fix a bug: scheduling under a spinlock
2006-04-20 16:57:23 -04:00
meta_io.h
[GFS2] 80 Column audit of GFS2
2006-02-27 12:00:42 -05:00
mount.c
[GFS2] Macros removal in gfs2.h
2006-02-27 17:23:27 -05:00
mount.h
[GFS2] The core of GFS2
2006-01-16 16:50:04 +00:00
ondisk.c
[GFS] Fix bug in endian conversion for metadata header
2006-03-30 15:46:23 -05:00
ops_address.c
[GFS2] Use vmalloc() in dir code
2006-04-18 10:09:15 -04:00
ops_address.h
[GFS2] Rename get_block and make it extern
2006-01-30 09:39:10 +00:00
ops_dentry.c
[GFS2] Further updates to dir and logging code
2006-03-28 14:14:04 -05:00
ops_dentry.h
[GFS2] The core of GFS2
2006-01-16 16:50:04 +00:00
ops_export.c
[GFS2] Further updates to dir and logging code
2006-03-28 14:14:04 -05:00
ops_export.h
[GFS2] The core of GFS2
2006-01-16 16:50:04 +00:00
ops_file.c
[GFS2] Remove inherited flags from exported flags.
2006-04-25 13:20:27 -04:00
ops_file.h
[GFS2] Fix for lock recursion problem for internal files
2006-02-15 10:15:18 +00:00
ops_fstype.c
[GFS2] Remove GL_NEVER_RECURSE flag
2006-04-26 14:58:26 -04:00
ops_fstype.h
[GFS2] Add gfs2meta filesystem
2006-03-02 16:33:41 -05:00
ops_inode.c
[GFS2] Use vmalloc() in dir code
2006-04-18 10:09:15 -04:00
ops_inode.h
[GFS2] The core of GFS2
2006-01-16 16:50:04 +00:00
ops_super.c
[GFS2] Use vmalloc() in dir code
2006-04-18 10:09:15 -04:00
ops_super.h
[GFS2] The core of GFS2
2006-01-16 16:50:04 +00:00
ops_vm.c
[GFS2] Macros removal in gfs2.h
2006-02-27 17:23:27 -05:00
ops_vm.h
[GFS2] The core of GFS2
2006-01-16 16:50:04 +00:00
page.c
[GFS2] Macros removal in gfs2.h
2006-02-27 17:23:27 -05:00
page.h
[GFS2] Update truncate function (shrinking partial blocks)
2006-01-31 10:00:25 +00:00
quota.c
[GFS2] Fix a ref count bug and other clean ups
2006-04-07 11:17:32 -04:00
quota.h
[GFS2] The core of GFS2
2006-01-16 16:50:04 +00:00
recovery.c
[GFS2] Remove GL_NEVER_RECURSE flag
2006-04-26 14:58:26 -04:00
recovery.h
[GFS2] journal recovery patch
2006-04-20 17:03:48 -04:00
rgrp.c
[GFS2] Macros removal in gfs2.h
2006-02-27 17:23:27 -05:00
rgrp.h
[GFS2] The core of GFS2
2006-01-16 16:50:04 +00:00
super.c
[GFS2] Remove GL_NEVER_RECURSE flag
2006-04-26 14:58:26 -04:00
super.h
[GFS2] Tidy up mount code.
2006-03-01 15:31:02 -05:00
sys.c
[GFS2] Macros removal in gfs2.h
2006-02-27 17:23:27 -05:00
sys.h
[GFS2] The core of GFS2
2006-01-16 16:50:04 +00:00
trans.c
[GFS2] Remove GL_NEVER_RECURSE flag
2006-04-26 14:58:26 -04:00
trans.h
[GFS2] Update debugging code
2006-03-29 14:36:49 -05:00
unlinked.c
[GFS2] Macros removal in gfs2.h
2006-02-27 17:23:27 -05:00
unlinked.h
[GFS2] The core of GFS2
2006-01-16 16:50:04 +00:00
util.c
[GFS2] Move BUG() back into the header file
2006-04-21 15:52:46 -04:00
util.h
[GFS2] Move BUG() back into the header file
2006-04-21 15:52:46 -04:00