[SSI] openssi/kernel/cluster/ssi/cfs proc.c,1.27,1.28

Roger Tsang <[email protected]> Wed, 16 Nov 2011 07:50:14 +0000
Newsgroups gmane.linux.cluster.ssic.cvs
Message-ID <[email protected]>
Update of /cvsroot/ssic-linux/openssi/kernel/cluster/ssi/cfs
In directory vz-cvs-3.sog:/tmp/cvs-serv3193/cluster/ssi/cfs

Modified Files:
      Tag: OPENSSI-FC
	proc.c 
Log Message:
cfs_proc_write: remove un/set_sem_flushing() since CFS will no longer support recursion.


Index: proc.c
===================================================================
RCS file: /cvsroot/ssic-linux/openssi/kernel/cluster/ssi/cfs/proc.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- proc.c	25 Oct 2010 05:56:23 -0000	1.27
+++ proc.c	16 Nov 2011 07:50:12 -0000	1.28
@@ -703,48 +703,12 @@
 #endif
 	if (CFS_AT_SERVER(data->inode)) {
 		struct kvec *vec;
-#ifdef CFS_FILE_WRITE_LIVELOCK_FIX
-		struct inode *ip = itoc(data->inode)->c_hp->sct_ip;
-		int stacked = 0;
-
-		/* RT: [ ssic-linux-Bugs-686748 ] Filesystem stacking deadlock.
-		 *
-		 * Lock ordering:
-		 * 		(__cfs_file_write)
-		 *		...
-		 *		(generic_file_buffered_write)
-		 *		(cfs_updatepage)
-		 *		...
-		 * ->i_sem	(generic_file_writev)
-		 *		...
-		 *		(generic_file_buffered_write)
-		 *		...
-		 *		(balance_dirty_pages)
-		 *		...
-		 *		(cfs_writepages)
-		 *		...
-		 * ->i_sem	(generic_file_writev)
-		 */
-		if (unlikely(sem_owned(&ip->i_sem) &&
-				!sem_flushing(&ip->i_sem))) {
-			set_sem_flushing(&ip->i_sem);
-			set_sem_flushing(&data->inode->i_sem);
-			stacked = 1;
-		}
-#endif
 		MAP_CFS_PAGEVEC(data, vec, vlen);
 
 		status = cfsd_write(itoc(data->inode)->c_hp, data->offset,
 				    vec, vlen, (unsigned long)data->count,
 				    data->stable);
 		UNMAP_CFS_PAGEVEC(data, vec, vlen);
-#ifdef CFS_FILE_WRITE_LIVELOCK_FIX
-		if (unlikely(stacked)) {
-			unset_sem_flushing(&ip->i_sem);
-			unset_sem_flushing(&data->inode->i_sem);
-		}
-#endif
-
 		if (status == 0)
 			cfs_update_attr(itoc(data->inode)->c_hp, data->inode, 1);
 	} else {
@@ -766,7 +730,7 @@
 
 		status = RCFS_WRITE(mip->mi_server, &rval, &data->args, &res_p,
 				&data->pagevec, vlen);
-#else
+#else /* !ICS_OOL_STRUCT_PAGES */
 #warning ICS should support sendpage
 		CFS_PAGEVEC_MAP_BUFFER(data, buffer, vlen);
 		status = RCFS_WRITE(mip->mi_server, &rval, &data->args, &res_p,


------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1