linux/fs/ocfs2
Wengang Wang a524812b7e ocfs2/dlm: avoid incorrect bit set in refmap on recovery master
In the following situation, there remains an incorrect bit in refmap on the
recovery master. Finally the recovery master will fail at purging the lockres
due to the incorrect bit in refmap.

1) node A has no interest on lockres A any longer, so it is purging it.
2) the owner of lockres A is node B, so node A is sending de-ref message
to node B.
3) at this time, node B crashed. node C becomes the recovery master. it recovers
lockres A(because the master is the dead node B).
4) node A migrated lockres A to node C with a refbit there.
5) node A failed to send de-ref message to node B because it crashed. The failure
is ignored. no other action is done for lockres A any more.

For mormal, re-send the deref message to it to recovery master can fix it. Well,
ignoring the failure of deref to the original master and not recovering the lockres
to recovery master has the same effect. And the later is simpler.

Signed-off-by: Wengang Wang <wen.gang.wang@oracle.com>
Acked-by: Srinivas Eeda <srinivas.eeda@oracle.com>
Cc: stable@kernel.org
Signed-off-by: Joel Becker <joel.becker@oracle.com>
2010-08-07 10:49:41 -07:00
..
cluster
dlm ocfs2/dlm: avoid incorrect bit set in refmap on recovery master 2010-08-07 10:49:41 -07:00
dlmfs
acl.c Fix the nested PR lock calling issue in ACL 2010-08-07 10:46:46 -07:00
acl.h
alloc.c
alloc.h
aops.c ocfs2: No need to zero pages past i_size. 2010-07-12 13:55:27 -07:00
aops.h
blockcheck.c
blockcheck.h
buffer_head_io.c
buffer_head_io.h
dcache.c
dcache.h
dir.c
dir.h
dlmglue.c
dlmglue.h
export.c
export.h
extent_map.c
extent_map.h
file.c ocfs2: Silence gcc warning in ocfs2_write_zero_page(). 2010-07-16 13:33:39 -07:00
file.h ocfs2: Zero the tail cluster when extending past i_size. 2010-07-08 13:25:35 -07:00
heartbeat.c
heartbeat.h
inode.c
inode.h
ioctl.c
ioctl.h
journal.c jbd2/ocfs2: Fix block checksumming when a buffer is used in several transactions 2010-07-15 15:17:47 -07:00
journal.h
Kconfig
localalloc.c ocfs2: Limit default local alloc size within bitmap range. 2010-06-15 16:50:43 -07:00
localalloc.h
locks.c
locks.h
Makefile
mmap.c
mmap.h
namei.c
namei.h
ocfs1_fs_compat.h
ocfs2_fs.h
ocfs2_ioctl.h
ocfs2_lockid.h
ocfs2_lockingver.h
ocfs2.h
quota_global.c ocfs2: Zero the tail cluster when extending past i_size. 2010-07-08 13:25:35 -07:00
quota_local.c ocfs2: Zero the tail cluster when extending past i_size. 2010-07-08 13:25:35 -07:00
quota.h
refcounttree.c ocfs2: Count more refcount records in file system fragmentation. 2010-08-07 10:44:49 -07:00
refcounttree.h
reservations.c ocfs2: update gfp/slab.h includes 2010-06-28 10:19:19 +10:00
reservations.h
resize.c
resize.h
slot_map.c
slot_map.h
stack_o2cb.c
stack_user.c
stackglue.c
stackglue.h
suballoc.c ocfs2: Remove the redundant cpu_to_le64. 2010-07-12 13:56:18 -07:00
suballoc.h
super.c
super.h
symlink.c
symlink.h
sysfile.c
sysfile.h
uptodate.c
uptodate.h
ver.c
ver.h
xattr.c ocfs2: Make xattr reflink work with new local alloc reservation. 2010-07-12 13:57:50 -07:00
xattr.h