[Ocfs2-commits] jlbec commits r2304 - branches/alloc_inode/fs/ocfs2

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Fri May 20 22:58:12 CDT 2005


Author: jlbec
Date: 2005-05-20 22:58:10 -0500 (Fri, 20 May 2005)
New Revision: 2304

Modified:
   branches/alloc_inode/fs/ocfs2/buffer_head_io.c
   branches/alloc_inode/fs/ocfs2/inode.c
   branches/alloc_inode/fs/ocfs2/journal.c
   branches/alloc_inode/fs/ocfs2/ocfs.h
Log:

o Move ip_io_sem to ocfs2_inode_info



Modified: branches/alloc_inode/fs/ocfs2/buffer_head_io.c
===================================================================
--- branches/alloc_inode/fs/ocfs2/buffer_head_io.c	2005-05-21 03:32:25 UTC (rev 2303)
+++ branches/alloc_inode/fs/ocfs2/buffer_head_io.c	2005-05-21 03:58:10 UTC (rev 2304)
@@ -77,12 +77,12 @@
 	sb = osb->sb;
 
 	if (inode)
-		down(&OCFS_I(inode)->ip_io_sem);
+		down(&OCFS2_I(inode)->ip_io_sem);
 	for (i = 0 ; i < nr ; i++) {
 		bh = bhs[i];
 		if (bh == NULL) {
 			if (inode)
-				up(&OCFS_I(inode)->ip_io_sem);
+				up(&OCFS2_I(inode)->ip_io_sem);
 			status = -EIO;
 			mlog_errno(status);
 			goto bail;
@@ -125,7 +125,7 @@
 			CLEAR_BH_SEQNUM(bh);
 	}
 	if (inode)
-		up(&OCFS_I(inode)->ip_io_sem);
+		up(&OCFS2_I(inode)->ip_io_sem);
 
 bail:
 
@@ -171,13 +171,13 @@
 	sb = osb->sb;
 
 	if (inode)
-		down(&OCFS_I(inode)->ip_io_sem);
+		down(&OCFS2_I(inode)->ip_io_sem);
 	for (i = 0 ; i < nr ; i++) {
 		if (bhs[i] == NULL) {
 			bhs[i] = sb_getblk(sb, block++);
 			if (bhs[i] == NULL) {
 				if (inode)
-					up(&OCFS_I(inode)->ip_io_sem);
+					up(&OCFS2_I(inode)->ip_io_sem);
 				status = -EIO;
 				mlog_errno(status);
 				goto bail;
@@ -258,7 +258,7 @@
 			CLEAR_BH_SEQNUM(bh);
 	}
 	if (inode)
-		up(&OCFS_I(inode)->ip_io_sem);
+		up(&OCFS2_I(inode)->ip_io_sem);
 
 	mlog(ML_BH_IO, "block=(%"MLFu64"), nr=(%d), cached=%s\n", block, nr, 
 	     (!(flags & OCFS_BH_CACHED) || ignore_cache) ? "no" : "yes");

Modified: branches/alloc_inode/fs/ocfs2/inode.c
===================================================================
--- branches/alloc_inode/fs/ocfs2/inode.c	2005-05-21 03:32:25 UTC (rev 2303)
+++ branches/alloc_inode/fs/ocfs2/inode.c	2005-05-21 03:58:10 UTC (rev 2304)
@@ -213,12 +213,9 @@
 	i = inode->u.generic_ip;
 	memset(i, 0, sizeof(ocfs_inode_private));
 
-	i->ip_flags = 0;
-
 	init_rwsem(&i->ip_alloc_sem);
-	init_MUTEX(&(i->ip_io_sem));
 
-	i->ip_flags |= OCFS_INODE_INITIALIZED;
+	i->ip_flags = OCFS_INODE_INITIALIZED;
 	return 0;
 } /* ocfs_inode_init_private */
 
@@ -771,6 +768,12 @@
 	mlog_bug_on_msg(spin_is_locked(&oi->ip_lock),
 			"Clear inode of %"MLFu64", inode is locked\n",
 			oi->ip_blkno);
+
+	mlog_bug_on_msg(down_trylock(&oi->ip_io_sem),
+			"Clear inode of %"MLFu64", io_sem is locked\n",
+			oi->ip_blkno);
+	up(&oi->ip_io_sem);
+
 	mlog_bug_on_msg(oi->ip_open_count,
 			"Clear inode of %"MLFu64" has open count %d\n",
 			oi->ip_blkno, oi->ip_open_count);

Modified: branches/alloc_inode/fs/ocfs2/journal.c
===================================================================
--- branches/alloc_inode/fs/ocfs2/journal.c	2005-05-21 03:32:25 UTC (rev 2303)
+++ branches/alloc_inode/fs/ocfs2/journal.c	2005-05-21 03:58:10 UTC (rev 2304)
@@ -392,7 +392,7 @@
 		BUG();
 	}
 
-	down(&OCFS_I(inode)->ip_io_sem);
+	down(&OCFS2_I(inode)->ip_io_sem);
 	switch (type) {
 	case OCFS_JOURNAL_ACCESS_CREATE:
 	case OCFS_JOURNAL_ACCESS_WRITE:
@@ -407,7 +407,7 @@
 		status = -EINVAL;
 		mlog(ML_ERROR, "Uknown access type!\n");
 	}
-	up(&OCFS_I(inode)->ip_io_sem);
+	up(&OCFS2_I(inode)->ip_io_sem);
 
 	if (status < 0)
 		mlog(ML_ERROR, "Error %d getting %d access to buffer!\n",

Modified: branches/alloc_inode/fs/ocfs2/ocfs.h
===================================================================
--- branches/alloc_inode/fs/ocfs2/ocfs.h	2005-05-21 03:32:25 UTC (rev 2303)
+++ branches/alloc_inode/fs/ocfs2/ocfs.h	2005-05-21 03:58:10 UTC (rev 2304)
@@ -198,8 +198,6 @@
 	/* protects allocation changes on this inode. */
 	struct rw_semaphore  ip_alloc_sem;
 
-	struct semaphore  ip_io_sem;
-
 	u32             ip_flags; /* see below */
 } ocfs_inode_private;
 
@@ -211,8 +209,6 @@
 
 #define OCFS_I(i)        ((ocfs_inode_private *)(i->u.generic_ip))
 
-#define GET_INODE_CLEAN_SEQ(i)  (atomic_t *)(&(OCFS_I(i)->ip_clean_buffer_seq))
-
 typedef enum _ocfs_vol_state
 {
 	VOLUME_INIT = 0,



More information about the Ocfs2-commits mailing list