alistair23-linux/fs/gfs2
Steven Whitehouse 7286b31eab GFS2: Take glock reference in examine_bucket()
We need to check the glock ref counter in a race free way
in order to ensure that the gfs2_glock_hold() call will
succeed. The easiest way to do that is to simply take the
reference count early in the common code of examine_bucket,
skipping any glocks with zero ref count.

That means that the examiner functions all need to put their
reference on the glock once they've performed their function.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Reported-by: David Teigland <teigland@redhat.com>
Tested-by: David Teigland <teigland@redhat.com>
2013-08-20 09:35:09 +01:00
..
acl.c gfs2: Use uid_eq and gid_eq where appropriate 2013-02-13 06:15:10 -08:00
acl.h
aops.c gfs2: use ->invalidatepage() length argument 2013-05-21 23:58:49 -04:00
bmap.c GFS2: Reserve journal space for quota change in do_grow 2013-06-27 18:16:27 +01:00
bmap.h
dentry.c Don't pass inode to ->d_hash() and ->d_compare() 2013-06-29 12:57:36 +04:00
dir.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw 2013-07-02 09:41:18 -07:00
dir.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw 2013-07-02 09:41:18 -07:00
export.c [readdir] constify ->actor 2013-06-29 12:57:05 +04:00
file.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-07-03 09:10:19 -07:00
gfs2.h
glock.c GFS2: Take glock reference in examine_bucket() 2013-08-20 09:35:09 +01:00
glock.h GFS2: Remove gfs2_refresh_inode from inode creation path 2013-04-08 08:40:17 +01:00
glops.c GFS2: don't overrun reserved revokes 2013-08-19 09:33:16 +01:00
glops.h
incore.h GFS2: Add origin indicator to glock callbacks 2013-04-10 10:26:55 +01:00
inode.c GFS2: Check for glock already held in gfs2_getxattr 2013-08-19 09:33:57 +01:00
inode.h GFS2: Add atomic_open support 2013-06-14 11:17:15 +01:00
Kconfig Finally eradicate CONFIG_HOTPLUG 2013-06-03 14:20:18 -07:00
lock_dlm.c GFS2: use memchr_inv 2013-04-04 09:52:50 +01:00
log.c GFS2: aggressively issue revokes in gfs2_log_flush 2013-06-19 09:41:59 +01:00
log.h GFS2: aggressively issue revokes in gfs2_log_flush 2013-06-19 09:41:59 +01:00
lops.c GFS2: Move gfs2_sync_meta to lops.c 2013-08-19 17:26:32 +01:00
lops.h GFS2: Eliminate gfs2_rg_lops 2013-06-05 09:50:40 +01:00
main.c GFS2: WQ_NON_REENTRANT is meaningless and going away 2013-08-19 09:33:01 +01:00
Makefile
meta_io.c GFS2: Move gfs2_sync_meta to lops.c 2013-08-19 17:26:32 +01:00
meta_io.h GFS2: Move gfs2_sync_meta to lops.c 2013-08-19 17:26:32 +01:00
ops_fstype.c GFS2: fix error propagation in init_threads() 2013-06-06 09:52:29 +01:00
quota.c GFS2: Remove no-op wrapper function 2013-06-05 09:51:23 +01:00
quota.h gfs2: Use kuid_t and kgid_t types where appropriate. 2013-02-13 06:15:09 -08:00
recovery.c
recovery.h
rgrp.c GFS2: Fix fstrim boundary conditions 2013-06-19 21:41:26 +01:00
rgrp.h GFS2: Remove vestigial parameter ip from function rs_deltree 2013-04-08 08:41:04 +01:00
super.c GFS2: Don't cache iopen glocks 2013-06-03 16:40:22 +01:00
super.h
sys.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-02-26 20:16:07 -08:00
sys.h
trace_gfs2.h GFS2: Add origin indicator to glock demote tracing 2013-04-10 10:32:05 +01:00
trans.c GFS2: fix warning message 2013-06-19 21:29:19 +01:00
trans.h
util.c
util.h
xattr.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2013-02-25 16:00:49 -08:00
xattr.h