linux/fs/gfs2
Steven Whitehouse 3942ae5319 GFS2: Fix race during filesystem mount
There is a potential race during filesystem mounting which has recently
been reported. It occurs when the userland gfs_controld is able to
process requests fast enough that it tries to use the sysfs interface
before the lock module is properly initialised. This is a pretty
unusual case as normally the lock module initialisation is very quick
compared with gfs_controld.

This patch adds an interruptible completion which is used to ensure that
userland will wait for the initialisation of the lock module to
complete.

There are other potential solutions to this problem, but this is the
quickest at this stage and has been tested both with and without
mount.gfs2 present in the system.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Reported-by: David Booher <dbooher@adams.net>
2011-07-12 09:15:46 +01:00
..
Kconfig GFS2: No longer experimental 2010-09-20 11:18:46 +01:00
Makefile GFS2: Rename ops_inode.c to inode.c 2011-05-10 13:12:49 +01:00
acl.c GFS2: Post-VFS scale update for RCU path walk 2011-01-21 09:39:24 +00:00
acl.h fs: provide rcu-walk aware permission i_ops 2011-01-07 17:50:29 +11:00
aops.c GFS2: Improve bug trap code in ->releasepage() 2011-05-03 11:49:19 +01:00
bmap.c GFS2: Wipe directory hash table metadata when deallocating a directory 2011-05-21 14:05:58 +01:00
bmap.h GFS2: New truncate sequence 2010-09-20 11:18:16 +01:00
dentry.c gfs2: fix d_revalidate oopsen on NFS exports 2011-03-10 03:44:48 -05:00
dir.c GFS2: When adding a new dir entry, inc link count if it is a subdir 2011-05-09 16:43:53 +01:00
dir.h GFS2: When adding a new dir entry, inc link count if it is a subdir 2011-05-09 16:43:53 +01:00
export.c GFS2: Make writeback more responsive to system conditions 2011-04-20 09:01:37 +01:00
file.c GFS2: make sure fallocate bytes is a multiple of blksize 2011-05-03 11:47:42 +01:00
gfs2.h [GFS2] Remove remote lock dropping code 2008-06-27 09:39:44 +01:00
glock.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes 2011-06-07 18:44:10 -07:00
glock.h GFS2: Alter point of entry to glock lru list for glocks with an address_space 2011-04-20 08:59:48 +01:00
glops.c GFS2: force a log flush when invalidating the rindex glock 2011-07-12 09:15:24 +01:00
glops.h GFS2: Clean up fsync() 2011-04-20 09:00:41 +01:00
incore.h GFS2: Fix race during filesystem mount 2011-07-12 09:15:46 +01:00
inode.c GFS2: Move all locking inside the inode creation function 2011-05-13 12:11:17 +01:00
inode.h GFS2: Clean up symlink creation 2011-05-13 10:34:59 +01:00
lock_dlm.c GFS2: Fix glock deallocation race 2011-03-09 10:58:04 +00:00
log.c GFS2: Wait properly when flushing the ail list 2011-05-21 19:21:07 +01:00
log.h GFS2: Make writeback more responsive to system conditions 2011-04-20 09:01:37 +01:00
lops.c GFS2: Optimise glock lru and end of life inodes 2011-04-20 09:01:17 +01:00
lops.h
main.c Merge branch 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 2011-05-26 13:19:00 -07:00
meta_io.c GFS2: Improve tracing support (adds two flags) 2011-04-20 09:00:59 +01:00
meta_io.h GFS2: Remove unused macro 2011-04-20 09:00:24 +01:00
ops_fstype.c GFS2: Fix race during filesystem mount 2011-07-12 09:15:46 +01:00
quota.c vmscan: change shrinker API by passing shrink_control struct 2011-05-25 08:39:26 -07:00
quota.h vmscan: change shrinker API by passing shrink_control struct 2011-05-25 08:39:26 -07:00
recovery.c GFS2: Fix spectator umount issue 2010-09-29 14:20:52 +01:00
recovery.h gfs2: use workqueue instead of slow-work 2010-07-23 13:14:25 +02:00
rgrp.c GFS2: Wipe directory hash table metadata when deallocating a directory 2011-05-21 14:05:58 +01:00
rgrp.h GFS2: deallocation performance patch 2011-02-24 12:13:48 +00:00
super.c GFS2: Move final part of inode.c into super.c 2011-05-09 16:45:38 +01:00
super.h gfs: constify xattr_handler 2010-05-21 18:31:20 -04:00
sys.c GFS2: Fix race during filesystem mount 2011-07-12 09:15:46 +01:00
sys.h GFS2: Remove ancient, unused code 2009-01-05 07:39:13 +00:00
trace_gfs2.h GFS2: Add an AIL writeback tracepoint 2011-04-20 09:01:58 +01:00
trans.c GFS2: Various gfs2_logd improvements 2010-05-05 09:39:18 +01:00
trans.h GFS2: reserve more blocks for transactions 2010-09-28 09:44:24 +01:00
util.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
util.h GFS2: Metadata address space clean up 2010-03-01 14:07:37 +00:00
xattr.c GFS2: Clean up duplicated setattr code 2010-11-30 10:30:19 +00:00
xattr.h sanitize xattr handler prototypes 2009-12-16 12:16:49 -05:00