[SSI] openssi/kernel/include/cluster/ssi/cfs cfs_fs.h, 1.23, 1.24 cfs_fs_i.h, 1.21, 1.22

Roger Tsang <[email protected]> Wed, 15 Dec 2010 06:44:27 +0000
Newsgroups gmane.linux.cluster.ssic.cvs
Message-ID <[email protected]>
Update of /cvsroot/ssic-linux/openssi/kernel/include/cluster/ssi/cfs
In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv9659/include/cluster/ssi/cfs

Modified Files:
      Tag: OPENSSI-FC
	cfs_fs.h cfs_fs_i.h 
Log Message:
cluster/ssi/cfs/cfs_subr.c (#ifdef CFS_ZAP_CACHES)
- cfs_update_attr: touch CFS_READTIME().

cluster/ssi/cfs/dir.c
- cfs_readdir_filler, uncached_readdir: no longer set CFS_INO_INVALID_ATIME c_flags since readlink() operation updates i_atime.

cluster/ssi/cfs/file.c
- do_setlk: skip cfs_zap_caches() since attributes were piggybacked during CFS flush.
- do_unlk, do_setlk: no need to clear the cache since token architecture guarantees cache coherency.

cluster/ssi/cfs/inode.c
- cfs_getattr: obtain CFS token before starting CFS SB thread.
- cfs_getattr: remove irrelevant CFS_SB_FSOP_START/DONE dance since this function is not the RPC operation.
- Fix [ ssic-linux-bugs 2010447 ] OpenSSI fails the glibc tst-atime test
  - cfs_getattr: force a getattr RPC operation if user cares about atime. (#ifdef CFS_ZAP_CACHES)
  - __cfs_revalidate_inode: do not do getattr too often. (#ifdef CFS_REVALIDATE_GETATTR)
  - cfs_fill_inode, __cfs_hpget: disable S_NOATIME i_flags since in cfs_getattr() we force a getattr.

cluster/ssi/cfs/inode.c (#ifdef CFS_SKIP)
- cfs_setattr: no need to flush data since token architecture guarantees cache coherency.

cluster/ssi/cfs/inode.c (#ifdef CFS_FILE_WRITE_LIVELOCK_FIX)
- cfs_setattr: test for ATTR_SIZE flag instead of down_write_trylock() on i_alloc_sem since our caller only acquires i_alloc_sem when ATTR_SIZE flag is set.
- cfs_setattr: no need to immediately re-acquire i_alloc_sem after re-acquiring i_sem since there is no race with DIO. CFS does not support DIO.

include/cluster/ssi/cfs/cfs_fs_i.h (#ifdef CFS_ZAP_CACHES)
- re-enable read_cache_jiffies field in cnode structure for CFS_READTIME() macro used in __cfs_revalidate_inode().

include/cluster/ssi/cfs/cfs_fs.h (#ifdef CFS_ZAP_CACHES)
- re-enable CFS_READTIME() preprocessor macro.

include/cluster/gen/cfs.x (#ifdef CFS_REVALIDATE_GETATTR)
- re-activate various code for CFS_PROTO->getattr().

include/linux/config.h
- re-enable CFS_REVALIDATE_GETATTR preprocessor directive to activate supporting code for CFS_PROTO->getattr().

 cluster/ssi/cfs/cfs_subr.c         |    2 
 cluster/ssi/cfs/dir.c              |    6 +
 cluster/ssi/cfs/file.c             |   15 ++
 cluster/ssi/cfs/inode.c            |  155 +++++++++++++----------------
 include/cluster/gen/cfs.x          |   12 +-
 include/cluster/ssi/cfs/cfs_fs.h   |    2 
 include/cluster/ssi/cfs/cfs_fs_i.h |    4 
 include/linux/config.h             |    4 
 8 files changed, 103 insertions(+), 97 deletions(-)


Index: cfs_fs.h
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/include/cluster/ssi/cfs/cfs_fs.h,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- cfs_fs.h	25 Oct 2010 05:53:39 -0000	1.23
+++ cfs_fs.h	15 Dec 2010 06:44:25 -0000	1.24
@@ -92,7 +92,7 @@
 #define CFS_ADDR(inode)			(RPC_PEERADDR(CFS_CLIENT(inode)))
 #define CFS_CONGESTED(inode)		(RPC_CONGESTED(CFS_CLIENT(inode)))
 #endif
-#if defined(CFS_ZAP_CACHES) && defined(CFS_FILE_RW_NOLOCK)
+#ifdef CFS_ZAP_CACHES
 #define CFS_READTIME(inode)		(itoc(inode)->read_cache_jiffies)
 #endif
 #if 0 /* legacy */

Index: cfs_fs_i.h
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/include/cluster/ssi/cfs/cfs_fs_i.h,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- cfs_fs_i.h	5 Mar 2010 05:23:57 -0000	1.21
+++ cfs_fs_i.h	15 Dec 2010 06:44:25 -0000	1.22
@@ -80,11 +80,13 @@
 	 *
 	 *	mtime != read_cache_mtime
 	 */
-#if defined(CFS_ZAP_CACHES) && defined(CFS_FILE_RW_NOLOCK)
+#ifdef CFS_ZAP_CACHES
 	unsigned long		read_cache_jiffies;
+#ifdef CFS_FILE_RW_NOLOCK
 	unsigned long		attrtimeo;
 	unsigned long		attrtimeo_timestamp;
 #endif
+#endif /* CFS_ZAP_CACHES */
 #ifdef SSI_CFS_EXNFS
 	/* SSI: Maybe we'll mimic the nfs client timeout code if we ever
 	 * stack CFS on client NFS.


------------------------------------------------------------------------------
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d