kernel-fxtec-pro1x/fs/ocfs2
Sunil Mushran 539d826409 [PATCH 2/2] ocfs2: Fix race between mount and recovery
As the fs recovery is asynchronous, there is a small chance that another
node can mount (and thus recover) the slot before the recovery thread
gets to it.

If this happens, the recovery thread will block indefinitely on the
journal/slot lock as that lock will be held for the duration of the mount
(by design) by the node assigned to that slot.

The solution implemented is to keep track of the journal replays using
a recovery generation in the journal inode, which will be incremented by the
thread replaying that journal. The recovery thread, before attempting the
blocking lock on the journal/slot lock, will compare the generation on disk
with what it has cached and skip recovery if it does not match.

This bug appears to have been inadvertently introduced during the mount/umount
vote removal by mainline commit 34d024f843. In the
mount voting scheme, the messaging would indirectly indicate that the slot
was being recovered.

Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>
Signed-off-by: Mark Fasheh <mfasheh@suse.com>
2008-07-31 16:21:14 -07:00
..
cluster configfs: Allow ->make_item() and ->make_group() to return detailed errors. 2008-07-17 15:21:29 -07:00
dlm SL*B: drop kmem cache argument from constructor 2008-07-26 12:00:07 -07:00
alloc.c ocfs2 endianness fixes 2008-05-21 16:55:59 -07:00
alloc.h
aops.c [PATCH] ocfs2: fix oops in mmap_truncate testing 2008-07-16 16:13:04 -07:00
aops.h
buffer_head_io.c
buffer_head_io.h
dcache.c
dcache.h
dir.c [PATCH] ocfs2: le*_add_cpu conversion 2008-03-03 15:50:21 -08:00
dir.h
dlmglue.c ocfs2: fix printk format warnings with OCFS2_FS_STATS=n 2008-07-14 13:57:14 -07:00
dlmglue.h ocfs2: Break out stackglue into modules. 2008-04-18 08:56:05 -07:00
export.c
export.h
extent_map.c
extent_map.h
file.c [PATCH] sanitize ->permission() prototype 2008-07-26 20:53:14 -04:00
file.h [PATCH] sanitize ->permission() prototype 2008-07-26 20:53:14 -04:00
heartbeat.c ocfs2: Move o2hb functionality into the stack glue. 2008-04-18 08:56:04 -07:00
heartbeat.h ocfs2: Move o2hb functionality into the stack glue. 2008-04-18 08:56:04 -07:00
inode.c
inode.h
ioctl.c [PATCH] r/o bind mounts: elevate write count for ioctls() 2008-04-19 00:29:24 -04:00
ioctl.h ocfs2: Convert ocfs2 over to unlocked_ioctl 2008-04-18 08:56:11 -07:00
journal.c [PATCH 2/2] ocfs2: Fix race between mount and recovery 2008-07-31 16:21:14 -07:00
journal.h [PATCH 2/2] ocfs2: Fix race between mount and recovery 2008-07-31 16:21:14 -07:00
localalloc.c ocfs2: Fix CONFIG_OCFS2_DEBUG_FS #ifdefs 2008-07-14 13:57:15 -07:00
localalloc.h
locks.c
locks.h
Makefile ocfs2: Allow selection of cluster plug-ins. 2008-04-18 08:56:07 -07:00
mmap.c
mmap.h
namei.c ocfs2: Improve rename locking 2008-04-18 08:56:11 -07:00
namei.h
ocfs1_fs_compat.h
ocfs2.h [PATCH 2/2] ocfs2: Fix race between mount and recovery 2008-07-31 16:21:14 -07:00
ocfs2_fs.h [PATCH 1/2] ocfs2: Add counter in struct ocfs2_dinode to track journal replays 2008-07-31 16:21:13 -07:00
ocfs2_lockid.h ocfs2: Change mlog_bug_on to BUG_ON in ocfs2_lockid.h 2008-04-18 08:56:07 -07:00
ocfs2_lockingver.h
resize.c ocfs2: Fix an endian bug in online resize. 2008-03-10 15:14:07 -07:00
resize.h
slot_map.c ocfs2: Abstract out node number queries. 2008-04-18 08:56:04 -07:00
slot_map.h ocfs2: De-magic the in-memory slot map. 2008-04-18 08:56:03 -07:00
stack_o2cb.c ocfs2: Remove ->hangup() from stack glue operations. 2008-06-16 10:46:52 -07:00
stack_user.c Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2 2008-07-17 10:55:51 -07:00
stackglue.c ocfs2: Remove ->hangup() from stack glue operations. 2008-06-16 10:46:52 -07:00
stackglue.h ocfs2: Remove ->hangup() from stack glue operations. 2008-06-16 10:46:52 -07:00
suballoc.c ocfs2: Add inode stealing for ocfs2_reserve_new_inode 2008-04-18 08:56:10 -07:00
suballoc.h ocfs2: Add ac_alloc_slot in ocfs2_alloc_context 2008-04-18 08:56:10 -07:00
super.c [PATCH 2/2] ocfs2: Fix race between mount and recovery 2008-07-31 16:21:14 -07:00
super.h
symlink.c ocfs2: Allow uid/gid/perm changes of symlinks 2008-04-30 17:09:54 -07:00
symlink.h
sysfile.c
sysfile.h
uptodate.c
uptodate.h
ver.c
ver.h