kernel-ark/fs/ocfs2
Sunil Mushran b0d4f817ba ocfs2/dlm: Fix race in adding/removing lockres' to/from the tracking list
This patch adds a new lock, dlm->tracking_lock, to protect adding/removing
lockres' to/from the dlm->tracking_list. We were previously using dlm->spinlock
for the same, but that proved inadequate as we could be freeing a lockres from
a context that did not hold that lock. As the new lock only protects this list,
we can explicitly take it when removing the lockres from the tracking list.

This bug was exposed when testing multiple processes concurrently flock() the
same file.

Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>
Signed-off-by: Mark Fasheh <mfasheh@suse.com>
2009-01-05 08:40:35 -08:00
..
cluster ocfs2/quota: Add QUOTA in mlog_attribute. 2009-01-05 08:40:30 -08:00
dlm ocfs2/dlm: Fix race in adding/removing lockres' to/from the tracking list 2009-01-05 08:40:35 -08:00
acl.c ocfs2: add ocfs2_init_acl in mknod 2009-01-05 08:34:20 -08:00
acl.h ocfs2: add ocfs2_init_acl in mknod 2009-01-05 08:34:20 -08:00
alloc.c ocfs2: Create ocfs2_xattr_value_buf. 2009-01-05 08:40:32 -08:00
alloc.h ocfs2: Create ocfs2_xattr_value_buf. 2009-01-05 08:40:32 -08:00
aops.c ocfs2: Use metadata-specific ocfs2_journal_access_*() functions. 2009-01-05 08:40:32 -08:00
aops.h ocfs2: convert to new aops 2007-10-16 09:42:58 -07:00
blockcheck.c ocfs2: One more hamming code optimization. 2009-01-05 08:40:35 -08:00
blockcheck.h ocfs2: Add the underlying blockcheck code. 2009-01-05 08:40:31 -08:00
buffer_head_io.c ocfs2: Use BH_JBDPrivateStart instead of BH_Unshadow 2009-01-05 08:40:24 -08:00
buffer_head_io.h ocfs2: Validate metadata only when it's read from disk. 2009-01-05 08:36:53 -08:00
dcache.c ocfs2: Remove mount/unmount votes 2008-01-25 14:45:34 -08:00
dcache.h
dir.c ocfs2: Checksum and ECC for directory blocks. 2009-01-05 08:40:34 -08:00
dir.h ocfs2: Checksum and ECC for directory blocks. 2009-01-05 08:40:34 -08:00
dlmglue.c ocfs2: Fix ocfs2_read_quota_block() error handling. 2009-01-05 08:40:24 -08:00
dlmglue.h ocfs2: Implementation of local and global quota file handling 2009-01-05 08:40:23 -08:00
export.c [PATCH] switch all filesystems over to d_obtain_alias 2008-10-23 05:13:01 -04:00
export.h exportfs: make struct export_operations const 2007-10-22 08:13:21 -07:00
extent_map.c ocfs2: Wrap virtual block reads in ocfs2_read_virt_blocks() 2009-01-05 08:36:54 -08:00
extent_map.h ocfs2: Wrap virtual block reads in ocfs2_read_virt_blocks() 2009-01-05 08:36:54 -08:00
file.c ocfs2: Use metadata-specific ocfs2_journal_access_*() functions. 2009-01-05 08:40:32 -08:00
file.h ocfs2: Implementation of local and global quota file handling 2009-01-05 08:40:23 -08: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 ocfs2: Use metadata-specific ocfs2_journal_access_*() functions. 2009-01-05 08:40:32 -08:00
inode.h ocfs2: Implementation of local and global quota file handling 2009-01-05 08:40:23 -08:00
ioctl.c ocfs2: Don't check for NULL before brelse() 2008-10-13 17:02:44 -07:00
ioctl.h ocfs2: Convert ocfs2 over to unlocked_ioctl 2008-04-18 08:56:11 -07:00
journal.c ocfs2: Checksum and ECC for directory blocks. 2009-01-05 08:40:34 -08:00
journal.h ocfs2: Use metadata-specific ocfs2_journal_access_*() functions. 2009-01-05 08:40:32 -08:00
localalloc.c ocfs2: Use metadata-specific ocfs2_journal_access_*() functions. 2009-01-05 08:40:32 -08:00
localalloc.h ocfs2: throttle back local alloc when low on disk space 2008-10-13 13:57:57 -07:00
locks.c ocfs2: POSIX file locks support 2008-10-13 13:57:57 -07:00
locks.h ocfs2: POSIX file locks support 2008-10-13 13:57:57 -07:00
Makefile ocfs2: Add the underlying blockcheck code. 2009-01-05 08:40:31 -08:00
mmap.c ocfs2: return 0 in page_mkwrite to let VFS retry. 2008-11-10 09:51:47 -08:00
mmap.h
namei.c ocfs2: Use metadata-specific ocfs2_journal_access_*() functions. 2009-01-05 08:40:32 -08:00
namei.h ocfs2: Move directory manipulation code into dir.c 2007-10-12 11:54:36 -07:00
ocfs1_fs_compat.h fs/: Spelling fixes 2008-02-03 17:33:42 +02:00
ocfs2_fs.h ocfs2: Enable metadata checksums. 2009-01-05 08:40:34 -08:00
ocfs2_lockid.h ocfs2: Implementation of local and global quota file handling 2009-01-05 08:40:23 -08:00
ocfs2_lockingver.h ocfs2: Negotiate locking protocol versions. 2008-02-06 16:11:29 -08:00
ocfs2.h ocfs2: Add directory block trailers. 2009-01-05 08:40:34 -08:00
quota_global.c ocfs2: Use metadata-specific ocfs2_journal_access_*() functions. 2009-01-05 08:40:32 -08:00
quota_local.c ocfs2: Use metadata-specific ocfs2_journal_access_*() functions. 2009-01-05 08:40:32 -08:00
quota.h ocfs2: Fix ocfs2_read_quota_block() error handling. 2009-01-05 08:40:24 -08:00
resize.c ocfs2: Use metadata-specific ocfs2_journal_access_*() functions. 2009-01-05 08:40:32 -08:00
resize.h [PATCH 2/2] ocfs2: Implement group add for online resize 2008-01-25 15:04:24 -08:00
slot_map.c ocfs2: Validate metadata only when it's read from disk. 2009-01-05 08:36:53 -08: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 ocfs2: initialize stack_user lvbptr 2008-12-01 14:46:39 -08:00
stackglue.c ocfs2: Remove pointless !! 2008-10-13 17:02:44 -07:00
stackglue.h ocfs2: POSIX file locks support 2008-10-13 13:57:57 -07:00
suballoc.c ocfs2: Use metadata-specific ocfs2_journal_access_*() functions. 2009-01-05 08:40:32 -08:00
suballoc.h ocfs2: Validate metadata only when it's read from disk. 2009-01-05 08:36:53 -08:00
super.c ocfs2: Validate superblock with checksum and ecc. 2009-01-05 08:40:34 -08:00
super.h ocfs2: use s_maxbytes directly in ocfs2_change_file_space() 2007-08-09 17:25:07 -07:00
symlink.c ocfs2: Wrap inode block reads in a dedicated function. 2009-01-05 08:36:52 -08:00
symlink.h [PATCH] mark struct inode_operations const 2 2007-02-12 09:48:46 -08:00
sysfile.c ocfs2: Silence false lockdep warnings 2008-01-25 15:05:44 -08:00
sysfile.h
uptodate.c ocfs2: use smaller counters in ocfs2_remove_xattr_clusters_from_cache 2008-10-13 17:02:44 -07:00
uptodate.h ocfs2: Add helper function in uptodate.c for removing xattr clusters 2008-10-13 13:57:59 -07:00
ver.c ocfs2: bump version number 2008-01-25 15:05:46 -08:00
ver.h
xattr.c ocfs2: Use proper journal_access function in xattr.c 2009-01-05 08:40:34 -08:00
xattr.h ocfs2: Create ocfs2_xattr_value_buf. 2009-01-05 08:40:32 -08:00