linux/fs/gfs2
Benjamin Marzinski 58e9fee13e [GFS2] Invalidate cache at correct point
GFS2 wasn't invalidating its cache before it called into the lock manager
with a request that could potentially drop a lock.  This was leaving a
window where the lock could be actually be held by another node, but the
file's page cache would still appear valid, causing coherency problems.
This patch moves the cache invalidation to before the lock manager call
when dropping a lock. It also adds the option to the lock_dlm lock
manager to not use conversion mode deadlock avoidance, which, on a
conversion from shared to exclusive, could internally drop the lock, and
then reacquire in. GFS2 now asks lock_dlm to not do this.  Instead, GFS2
manually drops the lock and reacquires it.

Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2008-03-31 10:41:44 +01:00
..
locking [GFS2] Invalidate cache at correct point 2008-03-31 10:41:44 +01:00
acl.c Introduce is_owner_or_cap() to wrap CAP_FOWNER use with fsuid check 2007-07-17 12:00:03 -07:00
acl.h [GFS2] Remove gfs2_check_acl() 2006-11-30 10:37:32 -05:00
bmap.c [GFS2] Streamline quota lock/check for no-quota case 2008-03-31 10:41:36 +01:00
bmap.h [GFS2] Remove function gfs2_get_block 2008-01-25 08:08:25 +00:00
daemon.c [GFS2] Move gfs2_logd into log.c 2008-01-25 08:07:56 +00:00
daemon.h [GFS2] Move gfs2_logd into log.c 2008-01-25 08:07:56 +00:00
dir.c [GFS2] possible null pointer dereference fixup 2008-03-31 10:41:28 +01:00
dir.h [GFS2] Clean up inode number handling 2007-07-09 08:22:24 +01:00
eaops.c [GFS2] Remove unrequired code 2008-01-25 08:08:13 +00:00
eaops.h [GFS2] mark struct *_operations const 2007-10-10 08:55:03 +01:00
eattr.c [GFS2] Streamline quota lock/check for no-quota case 2008-03-31 10:41:36 +01:00
eattr.h [GFS2] gfs2 misc endianness annotations 2006-11-30 10:33:46 -05:00
gfs2.h [GFS2] Update copyright, tidy up incore.h 2006-09-01 11:05:15 -04:00
glock.c [GFS2] Invalidate cache at correct point 2008-03-31 10:41:44 +01:00
glock.h [GFS2] Fix a page lock / glock deadlock 2008-03-31 10:41:12 +01:00
glops.c [GFS2] Remove rgrp and glock version numbers 2008-03-31 10:40:29 +01:00
glops.h [GFS2] Make headers compile on their own 2006-09-05 10:39:21 -04:00
incore.h [GFS2] Invalidate cache at correct point 2008-03-31 10:41:44 +01:00
inode.c [GFS2] possible null pointer dereference fixup 2008-03-31 10:41:28 +01:00
inode.h [GFS2] Eliminate (almost) duplicate field from gfs2_inode 2008-03-31 10:40:55 +01:00
Kconfig [GFS2] Need to ensure that sector_t is 64bits for GFS2 2008-03-31 10:41:25 +01:00
locking.c [GFS2] Export lm_interface to kernel headers 2006-09-19 08:45:18 -04:00
log.c [GFS2] Only do lo_incore_commit once 2008-03-31 10:39:54 +01:00
log.h [GFS2] Move gfs2_logd into log.c 2008-01-25 08:07:56 +00:00
lops.c [GFS2] Plug an unlikely leak 2008-03-31 10:40:05 +01:00
lops.h [GFS2] Only do lo_incore_commit once 2008-03-31 10:39:54 +01:00
main.c [GFS2] Allocate gfs2_rgrpd from slab memory 2008-03-31 10:40:07 +01:00
Makefile [GFS2] Remove lm.[ch] and distribute content 2008-03-31 10:40:26 +01:00
meta_io.c [GFS2] Fix typo 2008-01-25 08:19:51 +00:00
meta_io.h [GFS2] Remove useless i_cache from inodes 2008-01-25 08:07:16 +00:00
mount.c [GFS2] Add NULL entry to token table 2007-10-10 08:55:34 +01:00
mount.h [GFS2] Make headers compile on their own 2006-09-05 10:39:21 -04:00
ops_address.c [GFS2] Streamline quota lock/check for no-quota case 2008-03-31 10:41:36 +01:00
ops_address.h [GFS2] Remove function gfs2_get_block 2008-01-25 08:08:25 +00:00
ops_dentry.c [GFS2] Fix a page lock / glock deadlock 2008-03-31 10:41:12 +01:00
ops_dentry.h [GFS2] Make headers compile on their own 2006-09-05 10:39:21 -04:00
ops_export.c Convert ERR_PTR(PTR_ERR(p)) instances to ERR_CAST(p) 2008-02-07 08:42:26 -08:00
ops_file.c [GFS2] Streamline quota lock/check for no-quota case 2008-03-31 10:41:36 +01:00
ops_fstype.c [GFS2] Invalidate cache at correct point 2008-03-31 10:41:44 +01:00
ops_fstype.h exportfs: make struct export_operations const 2007-10-22 08:13:21 -07:00
ops_inode.c [GFS2] Streamline quota lock/check for no-quota case 2008-03-31 10:41:36 +01:00
ops_inode.h [GFS2] remove gfs2_dev_iops 2008-03-31 10:41:20 +01:00
ops_super.c [GFS2] Remove lm.[ch] and distribute content 2008-03-31 10:40:26 +01:00
ops_super.h [PATCH] Mark struct super_operations const 2007-02-12 09:48:47 -08:00
quota.c [GFS2] gfs2_adjust_quota has broken unstuffing code 2008-03-31 10:41:30 +01:00
quota.h [GFS2] Streamline quota lock/check for no-quota case 2008-03-31 10:41:36 +01:00
recovery.c [GFS2] fs/gfs2/recovery.c: suppress warnings 2008-03-31 10:41:41 +01:00
recovery.h [GFS2] split and annotate gfs2_log_head 2006-11-30 10:33:14 -05:00
rgrp.c [GFS2] Faster gfs2_bitfit algorithm 2008-03-31 10:41:39 +01:00
rgrp.h [GFS2] Add extent allocation to block allocator 2008-03-31 10:40:47 +01:00
super.c [GFS2] Streamline indirect pointer tree height calculation 2008-03-31 10:39:46 +01:00
super.h [GFS2] Remove lm.[ch] and distribute content 2008-03-31 10:40:26 +01:00
sys.c [GFS2] Remove unused counters 2008-03-31 10:40:34 +01:00
sys.h [GFS2] Make headers compile on their own 2006-09-05 10:39:21 -04:00
trans.c [GFS2] Update gfs2_trans_add_unrevoke to accept extents 2008-03-31 10:40:42 +01:00
trans.h [GFS2] Update gfs2_trans_add_unrevoke to accept extents 2008-03-31 10:40:42 +01:00
util.c [GFS2] Remove lm.[ch] and distribute content 2008-03-31 10:40:26 +01:00
util.h [GFS2] Remove lm.[ch] and distribute content 2008-03-31 10:40:26 +01:00