[Ocfs2-commits] jlbec commits r2307 - trunk/fs/ocfs2

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Mon May 23 18:28:07 CDT 2005


Author: jlbec
Signed-off-by: mfasheh
Date: 2005-05-23 18:28:05 -0500 (Mon, 23 May 2005)
New Revision: 2307

Modified:
   trunk/fs/ocfs2/aio.c
   trunk/fs/ocfs2/alloc.c
   trunk/fs/ocfs2/aops.c
   trunk/fs/ocfs2/buffer_head_io.c
   trunk/fs/ocfs2/buffer_head_io.h
   trunk/fs/ocfs2/dcache.c
   trunk/fs/ocfs2/dir.c
   trunk/fs/ocfs2/dlmglue.c
   trunk/fs/ocfs2/dlmglue.h
   trunk/fs/ocfs2/extent_map.c
   trunk/fs/ocfs2/file.c
   trunk/fs/ocfs2/heartbeat.c
   trunk/fs/ocfs2/inode.c
   trunk/fs/ocfs2/inode.h
   trunk/fs/ocfs2/journal.c
   trunk/fs/ocfs2/journal.h
   trunk/fs/ocfs2/localalloc.c
   trunk/fs/ocfs2/mmap.c
   trunk/fs/ocfs2/mmap.h
   trunk/fs/ocfs2/namei.c
   trunk/fs/ocfs2/ocfs.h
   trunk/fs/ocfs2/ocfs2.h
   trunk/fs/ocfs2/proc.c
   trunk/fs/ocfs2/slot_map.c
   trunk/fs/ocfs2/suballoc.c
   trunk/fs/ocfs2/suballoc.h
   trunk/fs/ocfs2/super.c
   trunk/fs/ocfs2/symlink.c
   trunk/fs/ocfs2/vote.c
Log:

o Move to an ->alloc_inode() scheme.  The former ocfs2_inode_private
  is now an alloc_inode()-style container of struct inode,
  struct ocfs2_inode_info.

Signed-off-by: mfasheh



Modified: trunk/fs/ocfs2/aio.c
===================================================================
--- trunk/fs/ocfs2/aio.c	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/aio.c	2005-05-23 23:28:05 UTC (rev 2307)
@@ -70,7 +70,7 @@
 	if (okp->kp_info.wl_unlock_ctxt)
 		ocfs2_unlock_buffer_inodes(&okp->kp_ctxt);
 	if (okp->kp_have_alloc_sem) 
-		up_read(&OCFS_I(okp->kp_inode)->ip_alloc_sem);
+		up_read(&OCFS2_I(okp->kp_inode)->ip_alloc_sem);
 
 	iput(okp->kp_inode);
 	kfree(okp);
@@ -280,7 +280,7 @@
 
 	/* hold the ip_alloc_sem across the op */
 	if (!okp->kp_have_alloc_sem) {
-		down_read(&OCFS_I(inode)->ip_alloc_sem);
+		down_read(&OCFS2_I(inode)->ip_alloc_sem);
 		okp->kp_have_alloc_sem = 1;
 	}
 
@@ -344,7 +344,7 @@
 	
 	/* hold the ip_alloc_sem across the op */
 	if (!okp->kp_have_alloc_sem) {
-		down_read(&OCFS_I(inode)->ip_alloc_sem);
+		down_read(&OCFS2_I(inode)->ip_alloc_sem);
 		okp->kp_have_alloc_sem = 1;
 	}
 

Modified: trunk/fs/ocfs2/alloc.c
===================================================================
--- trunk/fs/ocfs2/alloc.c	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/alloc.c	2005-05-23 23:28:05 UTC (rev 2307)
@@ -769,7 +769,7 @@
 
 	mlog(0, "add %u clusters starting at block %"MLFu64" to "
 		"inode %"MLFu64"\n",
-	     new_clusters, start_blk, OCFS_I(inode)->ip_blkno);
+	     new_clusters, start_blk, OCFS2_I(inode)->ip_blkno);
 
 	fe = (ocfs2_dinode *) fe_bh->b_data;
 	el = &fe->id2.i_list;
@@ -912,7 +912,7 @@
 	mlog_bug_on_msg(tl_count > ocfs2_truncate_recs_per_inode(osb->sb) || 
 			tl_count == 0,
 			"Truncate record count on #%"MLFu64" invalid ("
-			"wanted %u, actual %u\n", OCFS_I(tl_inode)->ip_blkno,
+			"wanted %u, actual %u\n", OCFS2_I(tl_inode)->ip_blkno,
 			ocfs2_truncate_recs_per_inode(osb->sb),
 			le16_to_cpu(tl->tl_count));
 
@@ -933,7 +933,7 @@
 
 	mlog(0, "Log truncate of %u clusters starting at cluster %u to "
 	     "%"MLFu64" (index = %d)\n", num_clusters, start_cluster,
-	     OCFS_I(tl_inode)->ip_blkno, index);
+	     OCFS2_I(tl_inode)->ip_blkno, index);
 
 	if (ocfs2_truncate_log_can_coalesce(tl, start_cluster)) {
 		/* Coalesce with the most recent record if possible */
@@ -1056,7 +1056,7 @@
 
 	num_to_flush = le32_to_cpu(tl->tl_used);
 	mlog(0, "Flush %u records from truncate log #%"MLFu64"\n",
-	     num_to_flush, OCFS_I(tl_inode)->ip_blkno);
+	     num_to_flush, OCFS2_I(tl_inode)->ip_blkno);
 	if (!num_to_flush) {
 		status = 0;
 		goto bail;
@@ -1170,7 +1170,7 @@
 		goto bail;
 	}
 
-	status = ocfs_read_block(osb, OCFS_I(inode)->ip_blkno, &bh,
+	status = ocfs_read_block(osb, OCFS2_I(inode)->ip_blkno, &bh,
 				 OCFS_BH_CACHED, inode);
 	if (status < 0) {
 		iput(inode);
@@ -1267,7 +1267,7 @@
 
 	mlog_entry();
 
-	if (OCFS_I(tl_inode)->ip_blkno == tl_copy->i_blkno) {
+	if (OCFS2_I(tl_inode)->ip_blkno == tl_copy->i_blkno) {
 		mlog(ML_ERROR, "Asked to recover my own truncate log!\n");
 		return -EINVAL;
 	}
@@ -1483,9 +1483,9 @@
 	}
 	el = &(fe->id2.i_list);
 
-	spin_lock(&OCFS_I(inode)->ip_lock);
-	OCFS_I(inode)->ip_clusters = fe->i_clusters - clusters_to_del;
-	spin_unlock(&OCFS_I(inode)->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
+	OCFS2_I(inode)->ip_clusters = fe->i_clusters - clusters_to_del;
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 	fe->i_clusters -= clusters_to_del;
 	fe->i_mtime = CURRENT_TIME.tv_sec;
 	fe->i_mtime_nsec = cpu_to_le32(CURRENT_TIME.tv_nsec);
@@ -1668,7 +1668,7 @@
 
 	mlog_entry_void();
 
-	down_write(&OCFS_I(inode)->ip_alloc_sem);
+	down_write(&OCFS2_I(inode)->ip_alloc_sem);
 
 	target_i_clusters = ocfs2_clusters_for_bytes(osb->sb,
 						     i_size_read(inode));
@@ -1783,7 +1783,7 @@
 	if (fe->i_clusters > target_i_clusters)
 		goto start;
 bail:
-	up_write(&OCFS_I(inode)->ip_alloc_sem);
+	up_write(&OCFS2_I(inode)->ip_alloc_sem);
 
 	ocfs2_schedule_truncate_log_flush(osb, 1);
 

Modified: trunk/fs/ocfs2/aops.c
===================================================================
--- trunk/fs/ocfs2/aops.c	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/aops.c	2005-05-23 23:28:05 UTC (rev 2307)
@@ -32,7 +32,6 @@
 #include "ocfs2.h"
 
 #include "alloc.h"
-#include "buffer_head_io.h"
 #include "dlmglue.h"
 #include "extent_map.h"
 #include "file.h"
@@ -40,6 +39,8 @@
 #include "journal.h"
 #include "symlink.h"
 
+#include "buffer_head_io.h"
+
 static int ocfs_symlink_get_block(struct inode *inode, sector_t iblock,
 		struct buffer_head *bh_result, int create)
 {
@@ -62,7 +63,8 @@
 		goto bail;
 	}
 
-	status = ocfs_read_block(OCFS2_SB(inode->i_sb), OCFS_I(inode)->ip_blkno,
+	status = ocfs_read_block(OCFS2_SB(inode->i_sb),
+				 OCFS2_I(inode)->ip_blkno,
 				 &bh, OCFS_BH_CACHED, inode);
 	if (status < 0) {
 		mlog_errno (status);
@@ -136,7 +138,7 @@
 	mlog_entry("(0x%p, %llu, 0x%p, %d)\n", inode,
 		   (unsigned long long)iblock, bh_result, create);
 
-	if (OCFS_I(inode)->ip_flags & OCFS_INODE_SYSTEM_FILE) {
+	if (OCFS2_I(inode)->ip_flags & OCFS2_INODE_SYSTEM_FILE) {
 		mlog(ML_NOTICE, "get_block on system inode 0x%p (%lu)\n",
 		     inode, inode->i_ino);
 	}
@@ -151,15 +153,15 @@
 	vbo = (u64)iblock << inode->i_sb->s_blocksize_bits;
 
 	/* this can happen if another node truncs after our extend! */
-	spin_lock(&OCFS_I(inode)->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
 	if (iblock >=
 	    ocfs2_clusters_to_blocks(inode->i_sb,
-				     OCFS_I(inode)->ip_clusters)) {
-		spin_unlock(&OCFS_I(inode)->ip_lock);
+				     OCFS2_I(inode)->ip_clusters)) {
+		spin_unlock(&OCFS2_I(inode)->ip_lock);
 		err = -EIO;
 		goto bail;
 	}
-	spin_unlock(&OCFS_I(inode)->ip_lock);
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 	err = ocfs2_extent_map_get_blocks(inode, iblock, 1, &p_blkno,
 					   NULL);
@@ -180,27 +182,27 @@
 		mlog(ML_ERROR, "iblock = %llu p_blkno = %"MLFu64" "
 			       "blkno=(%"MLFu64")\n",
 		     (unsigned long long)iblock, p_blkno,
-		     OCFS_I(inode)->ip_blkno);
+		     OCFS2_I(inode)->ip_blkno);
 	}
 
-	if (vbo < OCFS_I(inode)->ip_mmu_private)
+	if (vbo < OCFS2_I(inode)->ip_mmu_private)
 		goto bail;
 	if (!create)
 		goto bail;
-	if (vbo != OCFS_I(inode)->ip_mmu_private) {
+	if (vbo != OCFS2_I(inode)->ip_mmu_private) {
 		mlog(ML_ERROR, "Uh-oh, vbo = %"MLFi64", i_size = %lld, "
 				"mmu = %lld, inode = %"MLFu64"\n",
 		     vbo,
 		     i_size_read(inode),
-		     OCFS_I(inode)->ip_mmu_private,
-		     OCFS_I(inode)->ip_blkno);
+		     OCFS2_I(inode)->ip_mmu_private,
+		     OCFS2_I(inode)->ip_blkno);
 		BUG();
 		err = -EIO;
 		goto bail;
 	}
 
 	set_buffer_new(bh_result);
-	OCFS_I(inode)->ip_mmu_private += inode->i_sb->s_blocksize;
+	OCFS2_I(inode)->ip_mmu_private += inode->i_sb->s_blocksize;
 
 bail:
 	if (err < 0)
@@ -248,7 +250,7 @@
 	mlog_entry("(0x%p, 0x%p, %u, %u)\n", file, page, from, to);
 
 	ret = cont_prepare_write(page, from, to, ocfs_get_block,
-		&(OCFS_I(page->mapping->host)->ip_mmu_private));
+		&(OCFS2_I(page->mapping->host)->ip_mmu_private));
 
 	mlog_exit(ret);
 
@@ -291,14 +293,14 @@
 			mlog_errno(err);
 			goto bail;
 		}
-		down_read(&OCFS_I(inode)->ip_alloc_sem);
+		down_read(&OCFS2_I(inode)->ip_alloc_sem);
 	}
 
 	err = ocfs2_extent_map_get_blocks(inode, block, 1, &p_blkno,
 					  NULL);
 
 	if (!INODE_JOURNAL(inode)) {
-		up_read(&OCFS_I(inode)->ip_alloc_sem);
+		up_read(&OCFS2_I(inode)->ip_alloc_sem);
 		ocfs2_meta_unlock(inode, 0);
 	}
 
@@ -358,15 +360,15 @@
 
 	vbo_max = ((u64)iblock + max_blocks) << blocksize_bits;
 
-	spin_lock(&OCFS_I(inode)->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
 	if ((iblock + max_blocks) >
 	    ocfs2_clusters_to_blocks(inode->i_sb,
-				     OCFS_I(inode)->ip_clusters)) {
-		spin_unlock(&OCFS_I(inode)->ip_lock);
+				     OCFS2_I(inode)->ip_clusters)) {
+		spin_unlock(&OCFS2_I(inode)->ip_lock);
 		ret = -EIO;
 		goto bail;
 	}
-	spin_unlock(&OCFS_I(inode)->ip_lock);
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 	/* This figures out the size of the next contiguous block, and
 	 * our logical offset */	

Modified: trunk/fs/ocfs2/buffer_head_io.c
===================================================================
--- trunk/fs/ocfs2/buffer_head_io.c	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/buffer_head_io.c	2005-05-23 23:28:05 UTC (rev 2307)
@@ -34,6 +34,7 @@
 #include "ocfs2.h"
 
 #include "alloc.h"
+#include "inode.h"
 #include "journal.h"
 
 #include "buffer_head_io.h"
@@ -76,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;
@@ -124,7 +125,7 @@
 			CLEAR_BH_SEQNUM(bh);
 	}
 	if (inode)
-		up(&OCFS_I(inode)->ip_io_sem);
+		up(&OCFS2_I(inode)->ip_io_sem);
 
 bail:
 
@@ -170,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;
@@ -191,7 +192,7 @@
 			     "not match inode (%u)\n",
 			     (unsigned long long)bh->b_blocknr, 
 			     (bh->b_state & STATE_BIT_MASK) >> 19,
-			     atomic_read(GET_INODE_CLEAN_SEQ(inode)));
+			     ocfs2_get_inode_seq(inode));
 			ignore_cache = 1;
 		}
 
@@ -257,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: trunk/fs/ocfs2/buffer_head_io.h
===================================================================
--- trunk/fs/ocfs2/buffer_head_io.h	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/buffer_head_io.h	2005-05-23 23:28:05 UTC (rev 2307)
@@ -23,8 +23,8 @@
  * Boston, MA 021110-1307, USA.
  */
 
-#ifndef OCFSIO_H
-#define OCFSIO_H
+#ifndef OCFS2_BUFFER_HEAD_IO_H
+#define OCFS2_BUFFER_HEAD_IO_H
 
 #include <linux/buffer_head.h>
 
@@ -64,6 +64,11 @@
 #define STATE_BIT_MASK		((~0UL) << USED_BH_BITS)
 
 
+static inline unsigned int ocfs2_get_inode_seq(struct inode *inode)
+{
+	return atomic_read(&OCFS2_I(inode)->ip_clean_buffer_seq);
+}
+
 static inline void CLEAR_BH_SEQNUM(struct buffer_head *bh)
 {
 	unsigned int prev = bh->b_state & STATE_BIT_MASK;
@@ -72,7 +77,7 @@
 
 static inline void SET_BH_SEQNUM(struct inode *inode, struct buffer_head *bh)
 {
-	unsigned int seq = (atomic_read(GET_INODE_CLEAN_SEQ(inode)) & 
+	unsigned int seq = (ocfs2_get_inode_seq(inode) & 
 			    STATE_BIT_MAX_MASK) << USED_BH_BITS;
 
 	CLEAR_BH_SEQNUM(bh);
@@ -85,7 +90,7 @@
 	unsigned int seq =
 		(bh->b_state & STATE_BIT_MASK) >> USED_BH_BITS;
 
-	ret = (seq == atomic_read(GET_INODE_CLEAN_SEQ(inode)));
+	ret = (seq == ocfs2_get_inode_seq(inode));
 	return ret;
 }
 
@@ -119,4 +124,4 @@
 	return status;
 }
 
-#endif /* OCFSIO_H */
+#endif /* OCFS2_BUFFER_HEAD_IO_H */

Modified: trunk/fs/ocfs2/dcache.c
===================================================================
--- trunk/fs/ocfs2/dcache.c	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/dcache.c	2005-05-23 23:28:05 UTC (rev 2307)
@@ -36,6 +36,7 @@
 #include "alloc.h"
 #include "dcache.h"
 #include "file.h"
+#include "inode.h"
 
 static int ocfs_dentry_revalidate(struct dentry *dentry, struct nameidata *nd)
 {
@@ -58,20 +59,20 @@
 		goto bail;
 	}
 
-	spin_lock(&OCFS_I(inode)->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
 	/* did we or someone else delete this inode? */
 	if (INODE_DELETED(inode)) {
-		spin_unlock(&OCFS_I(inode)->ip_lock);
+		spin_unlock(&OCFS2_I(inode)->ip_lock);
 		mlog(0, "inode (%"MLFu64") deleted, returning false\n",
-		     OCFS_I(inode)->ip_blkno);
+		     OCFS2_I(inode)->ip_blkno);
 		goto bail;
 	}
-	spin_unlock(&OCFS_I(inode)->ip_lock);
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 	/* XXX: Should we do this for all files? */
 	if (S_ISDIR(inode->i_mode) && (!inode->i_nlink)) {
 		mlog(0, "dir inode (%"MLFu64") orphaned, returning false\n",
-		     OCFS_I(inode)->ip_blkno);
+		     OCFS2_I(inode)->ip_blkno);
 		goto bail;
 	}
 

Modified: trunk/fs/ocfs2/dir.c
===================================================================
--- trunk/fs/ocfs2/dir.c	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/dir.c	2005-05-23 23:28:05 UTC (rev 2307)
@@ -83,7 +83,7 @@
 	struct super_block * sb = inode->i_sb;
 	int have_disk_lock = 0;
 
-	mlog_entry("dirino=%"MLFu64"\n", OCFS_I(inode)->ip_blkno);
+	mlog_entry("dirino=%"MLFu64"\n", OCFS2_I(inode)->ip_blkno);
 
 	stored = 0;
 	bh = NULL;
@@ -105,7 +105,7 @@
 		if (!bh) {
 			mlog(ML_ERROR, "directory #%"MLFu64" contains a hole "
 				       "at offset %lld\n",
-			     OCFS_I(inode)->ip_blkno,
+			     OCFS2_I(inode)->ip_blkno,
 			     filp->f_pos);
 			filp->f_pos += sb->s_blocksize - offset;
 			continue;
@@ -216,7 +216,7 @@
 
 	mlog_entry ("(osb=%p, parent=%"MLFu64", name='%.*s', blkno=%p, "
 		    "inode=%p)\n",
-		    osb, OCFS_I(inode)->ip_blkno, namelen, name, blkno, inode);
+		    osb, OCFS2_I(inode)->ip_blkno, namelen, name, blkno, inode);
 
 	if (take_lock) {
 		/* Get a lock on the directory... */
@@ -273,20 +273,20 @@
 	    !(bh = ocfs_bread (inode, 0, &err, 0))) {
 	    	mlog(ML_ERROR, "bad directory (dir #%"MLFu64") - "
 			       "no data block\n", 
-		     OCFS_I(inode)->ip_blkno);
+		     OCFS2_I(inode)->ip_blkno);
 		return 1;
 	}
 
 	de = (struct ocfs2_dir_entry *) bh->b_data;
 	de1 = (struct ocfs2_dir_entry *)
 			((char *) de + le16_to_cpu(de->rec_len));
-	if ((le64_to_cpu(de->inode) != OCFS_I(inode)->ip_blkno) ||
+	if ((le64_to_cpu(de->inode) != OCFS2_I(inode)->ip_blkno) ||
 			!le64_to_cpu(de1->inode) || 
 			strcmp (".", de->name) ||
 			strcmp ("..", de1->name)) {
 	    	mlog(ML_ERROR, "bad directory (dir #%"MLFu64") - "
 			       "no `.' or `..'\n",
-		     OCFS_I(inode)->ip_blkno);
+		     OCFS2_I(inode)->ip_blkno);
 		brelse (bh);
 		return 1;
 	}
@@ -300,7 +300,7 @@
 			if (!bh) {
 				mlog(ML_ERROR, "directory #%"MLFu64" contains "
 					       "a hole at offset %lu\n",
-				     OCFS_I(inode)->ip_blkno, offset);
+				     OCFS2_I(inode)->ip_blkno, offset);
 				offset += sb->s_blocksize;
 				continue;
 			}
@@ -335,9 +335,9 @@
 	int extend;
 	u64 p_blkno;
 
-	spin_lock(&OCFS_I(dir)->ip_lock);
-	extend = (i_size_read(dir) == ocfs2_clusters_to_bytes(sb, OCFS_I(dir)->ip_clusters));
-	spin_unlock(&OCFS_I(dir)->ip_lock);
+	spin_lock(&OCFS2_I(dir)->ip_lock);
+	extend = (i_size_read(dir) == ocfs2_clusters_to_bytes(sb, OCFS2_I(dir)->ip_clusters));
+	spin_unlock(&OCFS2_I(dir)->ip_lock);
 
 	if (extend) {
 		status = ocfs_extend_allocation(OCFS2_SB(sb), dir, 1,
@@ -391,7 +391,7 @@
 
 	dir_i_size = i_size_read(dir);
 	mlog(0, "extending dir %"MLFu64" (i_size = %lld)\n",
-	     OCFS_I(dir)->ip_blkno, dir_i_size);
+	     OCFS2_I(dir)->ip_blkno, dir_i_size);
 
 	handle = ocfs_alloc_handle(osb);
 	if (handle == NULL) {
@@ -401,9 +401,9 @@
 	}
 
 	/* dir->i_size is always block aligned. */
-	spin_lock(&OCFS_I(dir)->ip_lock);
-	if (dir_i_size == ocfs2_clusters_to_bytes(sb, OCFS_I(dir)->ip_clusters)) {
-		spin_unlock(&OCFS_I(dir)->ip_lock);
+	spin_lock(&OCFS2_I(dir)->ip_lock);
+	if (dir_i_size == ocfs2_clusters_to_bytes(sb, OCFS2_I(dir)->ip_clusters)) {
+		spin_unlock(&OCFS2_I(dir)->ip_lock);
 		num_free_extents = ocfs_num_free_extents(osb, dir, fe);
 		if (num_free_extents < 0) {
 			status = num_free_extents;
@@ -430,7 +430,7 @@
 
 		credits = ocfs_calc_extend_credits(sb, fe, 1);
 	} else {
-		spin_unlock(&OCFS_I(dir)->ip_lock);
+		spin_unlock(&OCFS2_I(dir)->ip_lock);
 		credits = OCFS_SIMPLE_DIR_EXTEND_CREDITS;
 	}
 
@@ -515,7 +515,7 @@
 	mlog_entry_void();
 
 	mlog(0, "getting ready to insert namelen %d into dir %"MLFu64"\n", 
-	     namelen, OCFS_I(dir)->ip_blkno);
+	     namelen, OCFS2_I(dir)->ip_blkno);
 
 	OCFS_ASSERT(S_ISDIR(dir->i_mode));
 	fe = (ocfs2_dinode *) parent_fe_bh->b_data;

Modified: trunk/fs/ocfs2/dlmglue.c
===================================================================
--- trunk/fs/ocfs2/dlmglue.c	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/dlmglue.c	2005-05-23 23:28:05 UTC (rev 2307)
@@ -63,6 +63,8 @@
 #define OCFS2_LOCK_ID_MAX_LEN  32
 #define OCFS2_LOCK_ID_PAD "000000"
 
+static spinlock_t clean_buffer_lock = SPIN_LOCK_UNLOCKED;
+
 static char ocfs2_lock_type_char[OCFS_NUM_LOCK_TYPES] = {
 	[OCFS_TYPE_META]  = 'M',
 	[OCFS_TYPE_DATA]  = 'D',
@@ -317,6 +319,11 @@
 	res->l_priv = priv;
 }
 
+void ocfs2_lock_res_init_once(ocfs2_lock_res *res)
+{
+	res->l_name = NULL;
+}
+
 int ocfs2_inode_lock_res_init(ocfs2_lock_res *res,
 			      enum ocfs2_lock_type type,
 			      struct inode *inode)
@@ -336,7 +343,7 @@
 		res->l_ops = &ocfs2_inode_data_lops;
 
 	status = ocfs2_build_lock_name(type,
-				       OCFS_I(inode)->ip_blkno,
+				       OCFS2_I(inode)->ip_blkno,
 				       inode->i_generation,
 				       &res->l_name);
 	if (status < 0) {
@@ -378,8 +385,12 @@
 void ocfs2_lock_res_free(ocfs2_lock_res *res)
 {
 	mlog_entry_void();
+
 	if (res->l_name)
 		kfree(res->l_name);
+
+	ocfs2_lock_res_init_once(res);
+
 	mlog_exit_void();
 }
 
@@ -400,6 +411,7 @@
 	default:
 		BUG();
 	}
+
 	mlog_exit_void();
 }
 
@@ -492,31 +504,33 @@
 	mlog_exit_void();
 }
 
+void ocfs2_init_inode_seq(struct inode *inode)
+{
+	atomic_set(&OCFS2_I(inode)->ip_clean_buffer_seq,
+		   atomic_read(&OCFS2_SB(inode->i_sb)->clean_buffer_seq));
+}
+
 static void ocfs2_inc_inode_seq(ocfs_super *osb,
 				struct inode *inode)
 {
-	atomic_t *seq;
-
 	mlog_entry_void();
 
-	seq = GET_INODE_CLEAN_SEQ(inode);
+	mlog(0, "incrementing inode seq... current is %d\n", ocfs2_get_inode_seq(inode));
 
-	mlog(0, "incrementing inode seq... current is %d\n", atomic_read(seq));
-
 	/* wrap to ONE after 13 bits, will need a spinlock */
-	spin_lock (&osb->clean_buffer_lock);
+	spin_lock (&clean_buffer_lock);
 	if ((atomic_read(&osb->clean_buffer_seq)+1) % STATE_BIT_MAX == 0)
 		atomic_set(&osb->clean_buffer_seq, 1);
 	else
 		atomic_inc(&osb->clean_buffer_seq);
-	spin_unlock (&osb->clean_buffer_lock);
+	spin_unlock (&clean_buffer_lock);
 
 	/* doesn't matter if this another process */
 	/* has already incremented the global seq */
-	atomic_set(seq, atomic_read(&osb->clean_buffer_seq));
+	ocfs2_init_inode_seq(inode);
 
 	mlog(0, "done incrementing inode seq... new is %d\n",
-	     atomic_read(seq));
+	     ocfs2_get_inode_seq(inode));
 
 	mlog_exit_void();
 }
@@ -586,13 +600,11 @@
 	osb = OCFS2_SB(inode->i_sb);
 
 	mlog(0, "AST fired for inode %"MLFu64", l_action = %u, type = %s\n",
-	     OCFS_I(inode)->ip_blkno, lockres->l_action,
+	     OCFS2_I(inode)->ip_blkno, lockres->l_action,
 	     (lockres->l_type == OCFS_TYPE_META) ? "Meta" : "Data");
 
 	OCFS_ASSERT(ocfs2_is_inode_lock(lockres));
 
-	OCFS_ASSERT(OCFS_I(inode)->ip_flags & OCFS_INODE_INITIALIZED);
-
 	spin_lock(&lockres->l_lock);
 
 	lksb = &(lockres->l_lksb);
@@ -600,7 +612,7 @@
 		mlog(ML_ERROR, "ocfs2_inode_ast_func: lksb status value of %u "
 			       "on inode %"MLFu64"\n",
 		     lksb->status,
-		     OCFS_I(inode)->ip_blkno);
+		     OCFS2_I(inode)->ip_blkno);
 		spin_unlock(&lockres->l_lock);
 		mlog_exit_void();
 		return;
@@ -682,7 +694,7 @@
 	osb = OCFS2_SB(inode->i_sb);
 
 	mlog(0, "BAST fired for inode %"MLFu64", blocking = %d, level = %d "
-	     "type = %s\n", OCFS_I(inode)->ip_blkno, level,
+	     "type = %s\n", OCFS2_I(inode)->ip_blkno, level,
 	     lockres->l_level, 
 	     (lockres->l_type == OCFS_TYPE_META) ? "Meta" : "Data");
 
@@ -1085,7 +1097,7 @@
 	 * on a resource which has an invalid one -- we'll set it
 	 * valid when we release the EX. */
 
-	lockres = &OCFS_I(inode)->ip_meta_lockres;
+	lockres = &OCFS2_I(inode)->ip_meta_lockres;
 
 	spin_lock(&lockres->l_lock);
 	OCFS_ASSERT(!(lockres->l_flags & OCFS2_LOCK_ATTACHED));
@@ -1098,7 +1110,7 @@
 		goto bail;
 	}
 
-	lockres = &OCFS_I(inode)->ip_data_lockres;
+	lockres = &OCFS2_I(inode)->ip_data_lockres;
 
 	spin_lock(&lockres->l_lock);
 	OCFS_ASSERT(!(lockres->l_flags & OCFS2_LOCK_ATTACHED));
@@ -1128,10 +1140,10 @@
 	mlog_entry_void();
 
 	mlog(0, "inode %"MLFu64" take %s DATA lock\n",
-	     OCFS_I(inode)->ip_blkno,
+	     OCFS2_I(inode)->ip_blkno,
 	     write ? "EXMODE" : "PRMODE");
 
-	lockres = &OCFS_I(inode)->ip_data_lockres;
+	lockres = &OCFS2_I(inode)->ip_data_lockres;
 
 	level = write ? LKM_EXMODE : LKM_PRMODE;
 
@@ -1179,12 +1191,12 @@
 		       int write)
 {
 	int level = write ? LKM_EXMODE : LKM_PRMODE;
-	ocfs2_lock_res *lockres = &OCFS_I(inode)->ip_data_lockres;
+	ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_data_lockres;
 
 	mlog_entry_void();
 
 	mlog(0, "inode %"MLFu64" drop %s DATA lock\n",
-	     OCFS_I(inode)->ip_blkno, 
+	     OCFS2_I(inode)->ip_blkno, 
 	     write ? "EXMODE" : "PRMODE");
 
 	ocfs2_cluster_unlock(OCFS2_SB(inode->i_sb), lockres, level);
@@ -1215,13 +1227,12 @@
  * date from the truncate code. */
 static void __ocfs2_stuff_meta_lvb(struct inode *inode)
 {
-	ocfs_inode_private *oip = OCFS_I(inode);
-	ocfs2_lock_res *lockres = &oip->ip_meta_lockres;
+	ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_meta_lockres;
 	ocfs2_meta_lvb *lvb     = (ocfs2_meta_lvb *) lockres->l_lksb.lvb;
 
 	mlog_entry_void();
 
-	lvb->lvb_iclusters = cpu_to_be32(oip->ip_clusters);
+	lvb->lvb_iclusters = cpu_to_be32(OCFS2_I(inode)->ip_clusters);
 	lvb->lvb_iuid      = cpu_to_be32(inode->i_uid);
 	lvb->lvb_igid      = cpu_to_be32(inode->i_gid);
 	lvb->lvb_isize     = cpu_to_be64(i_size_read(inode));
@@ -1243,8 +1254,7 @@
 
 static void ocfs2_refresh_inode_from_lvb(struct inode *inode)
 {
-	ocfs_inode_private *oip = OCFS_I(inode);
-	ocfs2_lock_res *lockres = &oip->ip_meta_lockres;
+	ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_meta_lockres;
 	ocfs2_meta_lvb *lvb     = (ocfs2_meta_lvb *) lockres->l_lksb.lvb;
 
 	mlog_entry_void();
@@ -1261,37 +1271,37 @@
 	     be64_to_cpu(lvb->lvb_ictime), be64_to_cpu(lvb->lvb_imtime));
 
 	/* We're safe here without the lockres lock... */
-	spin_lock(&oip->ip_lock);
-	oip->ip_clusters = be32_to_cpu(lvb->lvb_iclusters);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
+	OCFS2_I(inode)->ip_clusters = be32_to_cpu(lvb->lvb_iclusters);
 	inode->i_uid     = be32_to_cpu(lvb->lvb_iuid);
 	inode->i_gid     = be32_to_cpu(lvb->lvb_igid);
 	i_size_write(inode, be64_to_cpu(lvb->lvb_isize));
 	inode->i_mode    = be16_to_cpu(lvb->lvb_imode);
 	inode->i_nlink   = be16_to_cpu(lvb->lvb_inlink);
 	/* fast-symlinks are a special case */
-	if (S_ISLNK(inode->i_mode) && !oip->ip_clusters)
+	if (S_ISLNK(inode->i_mode) && !OCFS2_I(inode)->ip_clusters)
 		inode->i_blocks = 0;
 	else
 		inode->i_blocks  = ocfs2_align_bytes_to_sectors(i_size_read(inode));
 	ocfs2_unpack_timespec(&inode->i_atime, be64_to_cpu(lvb->lvb_iatime));
 	ocfs2_unpack_timespec(&inode->i_mtime, be64_to_cpu(lvb->lvb_imtime));
 	ocfs2_unpack_timespec(&inode->i_ctime, be64_to_cpu(lvb->lvb_ictime));
-	spin_unlock(&oip->ip_lock);
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 	mlog_exit_void();
 }
 
 static void ocfs2_reset_meta_lvb_values(struct inode *inode)
 {
-	ocfs2_lock_res *lockres = &OCFS_I(inode)->ip_meta_lockres;
+	ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_meta_lockres;
 	ocfs2_meta_lvb *lvb = (ocfs2_meta_lvb *) lockres->l_lksb.lvb;
 	u32 i_clusters;
 
 	mlog_entry_void();
 
-	spin_lock(&OCFS_I(inode)->ip_lock);
-	i_clusters = OCFS_I(inode)->ip_clusters;
-	spin_unlock(&OCFS_I(inode)->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
+	i_clusters = OCFS2_I(inode)->ip_clusters;
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 	spin_lock(&lockres->l_lock);
 	if (lockres->l_level == LKM_EXMODE)
@@ -1392,14 +1402,16 @@
 
 	mlog_entry_void();
 
-	spin_lock(&OCFS_I(inode)->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
 	if (INODE_DELETED(inode))
-		mlog(ML_ERROR, "Orphaned inode %"MLFu64"was deleted while we "
+		mlog(ML_ERROR,
+		     "Orphaned inode %"MLFu64"was deleted while we "
 		     "were waiting on a lock. ip_flags = 0x%x\n",
-		     OCFS_I(inode)->ip_blkno, OCFS_I(inode)->ip_flags);
-	spin_unlock(&OCFS_I(inode)->ip_lock);
+		     OCFS2_I(inode)->ip_blkno,
+		     OCFS2_I(inode)->ip_flags);
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 
-	lockres = &OCFS_I(inode)->ip_meta_lockres;
+	lockres = &OCFS2_I(inode)->ip_meta_lockres;
 
 	if (!ocfs2_should_refresh_lock_res(lockres))
 		goto bail;
@@ -1413,7 +1425,7 @@
 		/* Boo, we have to go to disk. */
 		/* read bh, cast, ocfs_refresh_inode */
 		status = ocfs_read_block(OCFS2_SB(inode->i_sb),
-					 OCFS_I(inode)->ip_blkno, bh,
+					 OCFS2_I(inode)->ip_blkno, bh,
 					 OCFS_BH_CACHED, inode);
 		if (status < 0) {
 			mlog_errno(status);
@@ -1428,19 +1440,19 @@
 				le32_to_cpu(fe->i_generation),
 				"Invalid dinode %"MLFu64" disk generation: %u "
 				"inode->i_generation: %u\n",
-				OCFS_I(inode)->ip_blkno,
+				OCFS2_I(inode)->ip_blkno,
 				le32_to_cpu(fe->i_generation),
 				inode->i_generation);
 		mlog_bug_on_msg(fe->i_dtime || !(fe->i_flags & OCFS2_VALID_FL),
 				"Stale dinode %"MLFu64" dtime: %"MLFu64" "
-				"flags: 0x%x\n", OCFS_I(inode)->ip_blkno,
+				"flags: 0x%x\n", OCFS2_I(inode)->ip_blkno,
 				fe->i_dtime, fe->i_flags);
 
 		ocfs_refresh_inode(inode, fe);
 	}
 
 	mlog(0, "inode %"MLFu64", I can only trust %u clusters\n",
-	     OCFS_I(inode)->ip_blkno, trustable_clusters);
+	     OCFS2_I(inode)->ip_blkno, trustable_clusters);
 
 	/* will do nothing for inode types that don't use the extent
 	 * map (directories, bitmap files, etc) */
@@ -1473,7 +1485,7 @@
 	}
 
 	status = ocfs_read_block(OCFS2_SB(inode->i_sb),
-				 OCFS_I(inode)->ip_blkno,
+				 OCFS2_I(inode)->ip_blkno,
 				 ret_bh,
 				 OCFS_BH_CACHED,
 				 inode);
@@ -1505,7 +1517,7 @@
 	mlog_entry_void();
 
 	mlog(0, "inode %"MLFu64", take %s META lock\n",
-	     OCFS_I(inode)->ip_blkno,
+	     OCFS2_I(inode)->ip_blkno,
 	     ex ? "EXMODE" : "PRMODE");
 
 	status = 0;
@@ -1519,7 +1531,7 @@
 		return status;
 	}
 
-	lockres = &OCFS_I(inode)->ip_meta_lockres;
+	lockres = &OCFS2_I(inode)->ip_meta_lockres;
 	level = ex ? LKM_EXMODE : LKM_PRMODE;
 	dlm_flags = 0;
 	if (flags & OCFS2_META_LOCK_NOQUEUE)
@@ -1584,12 +1596,12 @@
 		       int ex)
 {
 	int level = ex ? LKM_EXMODE : LKM_PRMODE;
-	ocfs2_lock_res *lockres = &OCFS_I(inode)->ip_meta_lockres;
+	ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_meta_lockres;
 
 	mlog_entry_void();
 
 	mlog(0, "inode %"MLFu64" drop %s META lock\n",
-	     OCFS_I(inode)->ip_blkno,
+	     OCFS2_I(inode)->ip_blkno,
 	     ex ? "EXMODE" : "PRMODE");
 
 	ocfs2_cluster_unlock(OCFS2_SB(inode->i_sb), lockres, level);
@@ -1867,7 +1879,7 @@
 	mlog_entry_void();
 
 	err = ocfs2_drop_lock(OCFS2_SB(inode->i_sb),
-			      &OCFS_I(inode)->ip_data_lockres,
+			      &OCFS2_I(inode)->ip_data_lockres,
 			      NULL);
 	if (err < 0)
 		mlog_errno(err);
@@ -1875,7 +1887,7 @@
 	status = err;
 
 	err = ocfs2_drop_lock(OCFS2_SB(inode->i_sb),
-			      &OCFS_I(inode)->ip_meta_lockres,
+			      &OCFS2_I(inode)->ip_meta_lockres,
 			      &meta_dcb);
 	if (err < 0)
 		mlog_errno(err);
@@ -2021,7 +2033,7 @@
 
 	mlog_entry_void();
 
-       	lockres = &OCFS_I(inode)->ip_meta_lockres;
+       	lockres = &OCFS2_I(inode)->ip_meta_lockres;
 
 	spin_lock(&lockres->l_lock);
 
@@ -2186,7 +2198,7 @@
 
 	if (filemap_fdatawrite(mapping)) {
 		mlog(ML_ERROR, "Could not sync inode %"MLFu64" for downconvert!",
-		     OCFS_I(inode)->ip_blkno);
+		     OCFS2_I(inode)->ip_blkno);
 	}
 	sync_mapping_buffers(mapping);
 	if (blocking == LKM_EXMODE) {
@@ -2218,7 +2230,7 @@
 	inode = ocfs2_lock_res_inode(lockres);
 	osb = OCFS2_SB(inode->i_sb);
 
-	mlog(0, "unblock inode %"MLFu64"\n", OCFS_I(inode)->ip_blkno);
+	mlog(0, "unblock inode %"MLFu64"\n", OCFS2_I(inode)->ip_blkno);
 
 	status = ocfs2_generic_unblock_lock(osb,
 					    lockres,
@@ -2228,7 +2240,7 @@
 		mlog_errno(status);
 
 	mlog(0, "inode %"MLFu64", requeue = %d\n",
-	     OCFS_I(inode)->ip_blkno, *requeue);
+	     OCFS2_I(inode)->ip_blkno, *requeue);
 
 	/* because of inode ref counting, we never want to propagate
 	 * up requeue requests for inode locks. Instead we do it
@@ -2254,14 +2266,14 @@
 
        	inode = ocfs2_lock_res_inode(lockres);
 
-	mlog(0, "unblock inode %"MLFu64"\n", OCFS_I(inode)->ip_blkno);
+	mlog(0, "unblock inode %"MLFu64"\n", OCFS2_I(inode)->ip_blkno);
 
 	status = ocfs2_do_unblock_meta(inode, requeue);
 	if (status < 0)
 		mlog_errno(status);
 
 	mlog(0, "inode %"MLFu64", requeue = %d\n",
-	     OCFS_I(inode)->ip_blkno, *requeue);
+	     OCFS2_I(inode)->ip_blkno, *requeue);
 
 	/* if you're confused by this, see the comment in
 	 * ocfs2_unblock_data */
@@ -2347,7 +2359,7 @@
 
 	if (!igrab(inode)) {
 		mlog(0, "Inode %"MLFu64" asked to be scheduled during "
-		     "clear_inode!\n", OCFS_I(inode)->ip_blkno);
+		     "clear_inode!\n", OCFS2_I(inode)->ip_blkno);
 		return;
 	}
 
@@ -2355,3 +2367,19 @@
 
 	mlog_exit_void();
 }
+
+void ocfs2_meta_lvb_set_trunc_clusters(struct inode *inode,
+				       unsigned int trunc_clusters)
+{
+	ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_meta_lockres;
+	ocfs2_meta_lvb *lvb;
+
+	spin_lock(&lockres->l_lock);
+	OCFS_ASSERT(lockres->l_level == LKM_EXMODE);
+
+	lvb = (ocfs2_meta_lvb *) lockres->l_lksb.lvb;
+	if (be32_to_cpu(lvb->lvb_trunc_clusters) > trunc_clusters)
+		lvb->lvb_trunc_clusters = cpu_to_be32(trunc_clusters);
+	spin_unlock(&lockres->l_lock);
+}
+

Modified: trunk/fs/ocfs2/dlmglue.h
===================================================================
--- trunk/fs/ocfs2/dlmglue.h	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/dlmglue.h	2005-05-23 23:28:05 UTC (rev 2307)
@@ -79,6 +79,7 @@
 
 int ocfs2_dlm_init(ocfs_super *osb);
 void ocfs2_dlm_shutdown(ocfs_super *osb);
+void ocfs2_lock_res_init_once(ocfs2_lock_res *res);
 int ocfs2_inode_lock_res_init(ocfs2_lock_res *res,
 			      enum ocfs2_lock_type type,
 			      struct inode *inode);
@@ -115,19 +116,8 @@
 void ocfs2_process_blocked_lock(ocfs_super *osb,
 				ocfs2_lock_res *lockres);
 
-static inline void ocfs2_meta_lvb_set_trunc_clusters(struct inode *inode,
-						     unsigned int trunc_clusters)
-{
-	ocfs2_lock_res *lockres = &OCFS_I(inode)->ip_meta_lockres;
-	ocfs2_meta_lvb *lvb;
+void ocfs2_meta_lvb_set_trunc_clusters(struct inode *inode,
+				       unsigned int trunc_clusters);
+void ocfs2_init_inode_seq(struct inode *inode);
 
-	spin_lock(&lockres->l_lock);
-	OCFS_ASSERT(lockres->l_level == LKM_EXMODE);
-
-	lvb = (ocfs2_meta_lvb *) lockres->l_lksb.lvb;
-	if (be32_to_cpu(lvb->lvb_trunc_clusters) > trunc_clusters)
-		lvb->lvb_trunc_clusters = cpu_to_be32(trunc_clusters);
-	spin_unlock(&lockres->l_lock);
-}
-
 #endif	/* DLMGLUE_H */

Modified: trunk/fs/ocfs2/extent_map.c
===================================================================
--- trunk/fs/ocfs2/extent_map.c	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/extent_map.c	2005-05-23 23:28:05 UTC (rev 2307)
@@ -39,6 +39,7 @@
 #include "ocfs2.h"
 
 #include "extent_map.h"
+#include "inode.h"
 
 #include "buffer_head_io.h"
 
@@ -163,7 +164,7 @@
 
 			ret = -EBADR;
 			if ((rec->e_cpos + rec->e_clusters) >
-			    OCFS_I(inode)->ip_clusters)
+			    OCFS2_I(inode)->ip_clusters)
 				goto out_free;
 
 			if ((rec->e_cpos + rec->e_clusters) <= cpos) {
@@ -261,23 +262,23 @@
 {
 	int ret;
 	u64 blkno;
-	struct ocfs2_extent_map *em = &OCFS_I(inode)->ip_map;
+	struct ocfs2_extent_map *em = &OCFS2_I(inode)->ip_map;
 	struct ocfs2_extent_map_entry *ent;
 	struct buffer_head *bh = NULL;
 	ocfs2_extent_block *eb;
 	ocfs2_dinode *di;
 	ocfs2_extent_list *el;
 
-	spin_lock(&OCFS_I(inode)->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
 	ent = ocfs2_extent_map_lookup(em, cpos, clusters, NULL, NULL);
 	if (ent) {
 		if (!ent->e_tree_depth) {
-			spin_unlock(&OCFS_I(inode)->ip_lock);
+			spin_unlock(&OCFS2_I(inode)->ip_lock);
 			*ret_ent = ent;
 			return 0;
 		}
 		blkno = ent->e_rec.e_blkno;
-		spin_unlock(&OCFS_I(inode)->ip_lock);
+		spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 		ret = ocfs_read_block(OCFS2_SB(inode->i_sb), blkno, &bh,
 				      OCFS_BH_CACHED, inode);
@@ -290,10 +291,10 @@
 		OCFS2_BUG_ON_INVALID_EXTENT_BLOCK(eb);
 		el = &eb->h_list;
 	} else {
-		spin_unlock(&OCFS_I(inode)->ip_lock);
+		spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 		ret = ocfs_read_block(OCFS2_SB(inode->i_sb),
-				      OCFS_I(inode)->ip_blkno, &bh,
+				      OCFS2_I(inode)->ip_blkno, &bh,
 				      OCFS_BH_CACHED, inode);
 		if (ret) {
 			if (bh)
@@ -355,14 +356,14 @@
 				       struct ocfs2_em_insert_context *ctxt)
 {
 	int ret;
-	struct ocfs2_extent_map *em = &OCFS_I(inode)->ip_map;
+	struct ocfs2_extent_map *em = &OCFS2_I(inode)->ip_map;
 	struct ocfs2_extent_map_entry *old_ent;
 
 	ctxt->need_left = 0;
 	ctxt->need_right = 0;
 	ctxt->old_ent = NULL;
 
-	spin_lock(&OCFS_I(inode)->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
 	ret = ocfs2_extent_map_insert_entry(em, ctxt->new_ent);
 	if (!ret) {
 		ctxt->new_ent = NULL;
@@ -448,7 +449,7 @@
 		ctxt->new_ent = NULL;
 
 out_unlock:
-	spin_unlock(&OCFS_I(inode)->ip_lock);
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 	return ret;
 }
@@ -461,13 +462,13 @@
 	struct ocfs2_em_insert_context ctxt = {0, };
 
 	if ((rec->e_cpos + rec->e_clusters) >
-	    OCFS_I(inode)->ip_map.em_clusters)
+	    OCFS2_I(inode)->ip_map.em_clusters)
 		return -EBADR;
 
 	/* Zero e_clusters means a truncated tail record.  It better be EOF */
 	if (!rec->e_clusters) {
 		if ((rec->e_cpos + rec->e_clusters) != 
-		    OCFS_I(inode)->ip_map.em_clusters)
+		    OCFS2_I(inode)->ip_map.em_clusters)
 			return -EBADR;
 
 		/* Ignore the truncated tail */
@@ -541,25 +542,33 @@
 			    u32 new_clusters)
 {
 	int ret;
-	struct ocfs2_extent_map *em = &OCFS_I(inode)->ip_map;
+	struct ocfs2_extent_map *em = &OCFS2_I(inode)->ip_map;
 	struct ocfs2_extent_map_entry *ent;
 	ocfs2_extent_rec *old;
 
 	OCFS_ASSERT(new_clusters);
 	OCFS_ASSERT(rec->e_clusters >= new_clusters);
 
-	if (em->em_clusters < OCFS_I(inode)->ip_clusters) {
+	if (em->em_clusters < OCFS2_I(inode)->ip_clusters) {
 		/*
 		 * Size changed underneath us on disk.  Drop any
 		 * straddling records and update our idea of
 		 * i_clusters
 		 */
 		ocfs2_extent_map_drop(inode, em->em_clusters - 1);
-		em->em_clusters = OCFS_I(inode)->ip_clusters;
+		em->em_clusters = OCFS2_I(inode)->ip_clusters;
 	}
 
-	OCFS_ASSERT((rec->e_cpos + rec->e_clusters) ==
-		    (em->em_clusters + new_clusters));
+	mlog_bug_on_msg((rec->e_cpos + rec->e_clusters) !=
+			(em->em_clusters + new_clusters),
+			"Inode %"MLFu64":\n"
+			"rec->e_cpos = %u + rec->e_clusters = %u = %u\n"
+			"em->em_clusters = %u + new_clusters = %u = %u\n",
+			OCFS2_I(inode)->ip_blkno,
+			rec->e_cpos, rec->e_clusters,
+			rec->e_cpos + rec->e_clusters,
+			em->em_clusters, new_clusters,
+			em->em_clusters + new_clusters);
 
 	em->em_clusters += new_clusters;
 
@@ -614,12 +623,12 @@
 			     int *tree_depth)
 {
 	int ret = -ENOENT;
-	struct ocfs2_extent_map *em = &OCFS_I(inode)->ip_map;
+	struct ocfs2_extent_map *em = &OCFS2_I(inode)->ip_map;
 	struct ocfs2_extent_map_entry *ent;
 
 	*rec = NULL;
 
-	if (cpos >= OCFS_I(inode)->ip_clusters)
+	if (cpos >= OCFS2_I(inode)->ip_clusters)
 		return -EINVAL;
 
 	if (cpos >= em->em_clusters) {
@@ -629,10 +638,10 @@
 		 * i_clusters
 		 */
 		ocfs2_extent_map_drop(inode, em->em_clusters - 1);
-		em->em_clusters = OCFS_I(inode)->ip_clusters ;
+		em->em_clusters = OCFS2_I(inode)->ip_clusters ;
 	}
 
-	ent = ocfs2_extent_map_lookup(&OCFS_I(inode)->ip_map, cpos, 1,
+	ent = ocfs2_extent_map_lookup(&OCFS2_I(inode)->ip_map, cpos, 1,
 				      NULL, NULL);
 	
 	if (ent) {
@@ -651,12 +660,12 @@
 {
 	int ret;
 	u32 coff, ccount;
-	struct ocfs2_extent_map *em = &OCFS_I(inode)->ip_map;
+	struct ocfs2_extent_map *em = &OCFS2_I(inode)->ip_map;
 	struct ocfs2_extent_map_entry *ent = NULL;
 
 	*p_cpos = ccount = 0;
 
-	if ((v_cpos + count) > OCFS_I(inode)->ip_clusters)
+	if ((v_cpos + count) > OCFS2_I(inode)->ip_clusters)
 		return -EINVAL;
 
 	if ((v_cpos + count) > em->em_clusters) {
@@ -666,7 +675,7 @@
 		 * i_clusters
 		 */
 		ocfs2_extent_map_drop(inode, em->em_clusters - 1);
-		em->em_clusters = OCFS_I(inode)->ip_clusters;
+		em->em_clusters = OCFS2_I(inode)->ip_clusters;
 	}
 
 
@@ -705,7 +714,7 @@
 	u32 cpos, clusters;
 	int bpc = ocfs2_clusters_to_blocks(inode->i_sb, 1);
 	struct ocfs2_extent_map_entry *ent = NULL;
-	struct ocfs2_extent_map *em = &OCFS_I(inode)->ip_map;
+	struct ocfs2_extent_map *em = &OCFS2_I(inode)->ip_map;
 	ocfs2_extent_rec *rec;
 
 	*p_blkno = 0;
@@ -713,7 +722,7 @@
 	cpos = ocfs2_blocks_to_clusters(inode->i_sb, v_blkno);
 	clusters = ocfs2_blocks_to_clusters(inode->i_sb,
 					    (u64)count + bpc - 1);
-	if ((cpos + clusters) > OCFS_I(inode)->ip_clusters)
+	if ((cpos + clusters) > OCFS2_I(inode)->ip_clusters)
 		return -EINVAL;
 
 	if ((cpos + clusters) > em->em_clusters) {
@@ -723,7 +732,7 @@
 		 * i_clusters
 		 */
 		ocfs2_extent_map_drop(inode, em->em_clusters - 1);
-		em->em_clusters = OCFS_I(inode)->ip_clusters;
+		em->em_clusters = OCFS2_I(inode)->ip_clusters;
 	}
 
 	ret = ocfs2_extent_map_lookup_read(inode, cpos, clusters, &ent);
@@ -758,7 +767,7 @@
 
 int ocfs2_extent_map_init(struct inode *inode)
 {
-	struct ocfs2_extent_map *em = &OCFS_I(inode)->ip_map;
+	struct ocfs2_extent_map *em = &OCFS2_I(inode)->ip_map;
 
 	em->em_extents = RB_ROOT;
 	em->em_clusters = 0;
@@ -773,7 +782,7 @@
 				    struct ocfs2_extent_map_entry **tail_ent)
 {
 	struct rb_node *node, *next;
-	struct ocfs2_extent_map *em = &OCFS_I(inode)->ip_map;
+	struct ocfs2_extent_map *em = &OCFS2_I(inode)->ip_map;
 	struct ocfs2_extent_map_entry *ent;
 
 	*free_head = NULL;
@@ -836,10 +845,10 @@
 int ocfs2_extent_map_drop(struct inode *inode, u32 new_clusters)
 {
 	struct rb_node *free_head = NULL;
-	struct ocfs2_extent_map *em = &OCFS_I(inode)->ip_map;
+	struct ocfs2_extent_map *em = &OCFS2_I(inode)->ip_map;
 	struct ocfs2_extent_map_entry *ent;
 
-	spin_lock(&OCFS_I(inode)->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
 
 	__ocfs2_extent_map_drop(inode, new_clusters, &free_head, &ent);
 
@@ -849,7 +858,7 @@
 		free_head = &ent->e_node;
 	}
 
-	spin_unlock(&OCFS_I(inode)->ip_lock);
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 	if (free_head)
 		__ocfs2_extent_map_drop_cleanup(free_head);
@@ -867,7 +876,7 @@
 	struct rb_node *free_head = NULL;
 	struct ocfs2_extent_map_entry *ent = NULL;
 
-	spin_lock(&OCFS_I(inode)->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
 
 	__ocfs2_extent_map_drop(inode, new_clusters, &free_head, &ent);
 
@@ -875,9 +884,9 @@
 		ent->e_rec.e_clusters =
 			new_clusters - ent->e_rec.e_cpos;
 
-	OCFS_I(inode)->ip_map.em_clusters = new_clusters;
+	OCFS2_I(inode)->ip_map.em_clusters = new_clusters;
 
-	spin_unlock(&OCFS_I(inode)->ip_lock);
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 	if (free_head)
 		__ocfs2_extent_map_drop_cleanup(free_head);

Modified: trunk/fs/ocfs2/file.c
===================================================================
--- trunk/fs/ocfs2/file.c	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/file.c	2005-05-23 23:28:05 UTC (rev 2307)
@@ -88,7 +88,7 @@
 {
 	int status;
 	int mode = file->f_flags;
-	ocfs_inode_private *oip = OCFS_I(inode);
+	struct ocfs2_inode_info *oi = OCFS2_I(inode);
 
 	mlog_entry ("(0x%p, 0x%p, '%.*s')\n", inode, file, 
 			file->f_dentry->d_name.len, 
@@ -96,19 +96,19 @@
 
 	status = -EACCES;
 
-	spin_lock(&oip->ip_lock);
-	if (oip->ip_open_cnt &&
+	spin_lock(&oi->ip_lock);
+	if (oi->ip_open_count &&
 	    !ocfs2_valid_open(mode, 
-			      oip->ip_flags & OCFS_INODE_OPEN_DIRECT)) {
-		spin_unlock(&oip->ip_lock);
+			      oi->ip_flags & OCFS2_INODE_OPEN_DIRECT)) {
+		spin_unlock(&oi->ip_lock);
 		goto leave;
 	}
 
 	if (mode & O_DIRECT)
-		oip->ip_flags |= OCFS_INODE_OPEN_DIRECT;
+		oi->ip_flags |= OCFS2_INODE_OPEN_DIRECT;
 
-	oip->ip_open_cnt++;
-	spin_unlock(&oip->ip_lock);
+	oi->ip_open_count++;
+	spin_unlock(&oi->ip_lock);
 	status = 0;
 leave:
 	mlog_exit(status);
@@ -117,16 +117,16 @@
 
 static int ocfs_file_release(struct inode *inode, struct file *file)
 {
-	ocfs_inode_private *oip = OCFS_I(inode);
+	struct ocfs2_inode_info *oi = OCFS2_I(inode);
 
 	mlog_entry("(0x%p, 0x%p, '%.*s')\n", inode, file,
 		       file->f_dentry->d_name.len, 
 		       file->f_dentry->d_name.name);
 
-	spin_lock(&oip->ip_lock);
-	if (!--oip->ip_open_cnt)
-		oip->ip_flags &= ~OCFS_INODE_OPEN_DIRECT;
-	spin_unlock(&oip->ip_lock);
+	spin_lock(&oi->ip_lock);
+	if (!--oi->ip_open_count)
+		oi->ip_flags &= ~OCFS2_INODE_OPEN_DIRECT;
+	spin_unlock(&oi->ip_lock);
 
 	mlog_exit(0);
 
@@ -172,7 +172,7 @@
 				 unsigned should_zero)
 {
 	mlog(0, "inode %"MLFu64", newsize = %lld, should_zero = %u\n",
-	     OCFS_I(inode)->ip_blkno, (long long)newsize, should_zero);
+	     OCFS2_I(inode)->ip_blkno, (long long)newsize, should_zero);
 
 	ocfs2_update_inode_size(inode, newsize);
 
@@ -181,7 +181,7 @@
 		 * This leaves dirty data in holes.
 		 * Caveat Emptor.
 		 */
-		OCFS_I(inode)->ip_mmu_private = newsize;
+		OCFS2_I(inode)->ip_mmu_private = newsize;
 	} else {
 		int status = ocfs2_zero_extend(inode);
 		/*
@@ -238,7 +238,7 @@
 	if (ret)
 		goto bail;
 
-	down_read(&OCFS_I(inode)->ip_alloc_sem);
+	down_read(&OCFS2_I(inode)->ip_alloc_sem);
 
 #ifdef OCFS2_ORACORE_WORKAROUNDS
 	saved_flags = filp->f_flags;
@@ -252,7 +252,7 @@
 	filp->f_flags = saved_flags;
 #endif
 
-	up_read(&OCFS_I(inode)->ip_alloc_sem);
+	up_read(&OCFS2_I(inode)->ip_alloc_sem);
 
 bail:
 	/* we might have to finish up extentions that were performed before
@@ -323,11 +323,11 @@
 		goto bail_unlock;
 	}
 
-	down_read(&OCFS_I(inode)->ip_alloc_sem);
+	down_read(&OCFS2_I(inode)->ip_alloc_sem);
 
 	ret = generic_file_read (filp, buf, count, ppos);
 
-	up_read(&OCFS_I(inode)->ip_alloc_sem);
+	up_read(&OCFS2_I(inode)->ip_alloc_sem);
 
 	if (ret == -EINVAL)
 		mlog(ML_ERROR, "Generic_file_read returned -EINVAL\n");
@@ -364,7 +364,6 @@
 			u64 new_i_size)
 {
 	int status, grow;
-	ocfs_inode_private *oip = OCFS_I(inode);
 
 	mlog_entry_void();
 
@@ -380,10 +379,10 @@
 	}
 
 	/* FIXME: I think this should all be in the caller */
-	spin_lock(&oip->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
 	if (!grow)
-		oip->ip_mmu_private = i_size_read(inode);
-	spin_unlock(&oip->ip_lock);
+		OCFS2_I(inode)->ip_mmu_private = i_size_read(inode);
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 bail:
 	mlog_exit(status);
@@ -437,11 +436,11 @@
 	ocfs2_truncate_context *tc = NULL;
 
 	mlog_entry("(inode = %"MLFu64", new_i_size = %"MLFu64"\n", 
-		   OCFS_I(inode)->ip_blkno, new_i_size);
+		   OCFS2_I(inode)->ip_blkno, new_i_size);
 
 	truncate_inode_pages(inode->i_mapping, new_i_size);
 
-	status = ocfs_read_block(osb, OCFS_I(inode)->ip_blkno, &fe_bh,
+	status = ocfs_read_block(osb, OCFS2_I(inode)->ip_blkno, &fe_bh,
 				 OCFS_BH_CACHED, inode);
 	if (status < 0) {
 		mlog_errno(status);
@@ -544,7 +543,7 @@
 	int res = 0;
 
 	/* Start the zeroing of blocks */
-	if (i_size_read(inode) > OCFS_I(inode)->ip_mmu_private) {
+	if (i_size_read(inode) > OCFS2_I(inode)->ip_mmu_private) {
 		page = grab_cache_page(mapping,
 				       size >> PAGE_CACHE_SHIFT);
 		if (!page) {
@@ -646,7 +645,7 @@
 
 	block = ocfs2_clusters_to_blocks(osb->sb, bit_off);
 	mlog(0, "Allocating %u clusters at block %u for inode %"MLFu64"\n",
-	     num_bits, bit_off, OCFS_I(inode)->ip_blkno);
+	     num_bits, bit_off, OCFS2_I(inode)->ip_blkno);
 	status = ocfs2_insert_extent(osb, handle, inode, fe_bh, block, 
 				       num_bits, meta_ac);
 	if (status < 0) {
@@ -655,9 +654,9 @@
 	}
 
 	fe->i_clusters += num_bits;
-	spin_lock(&OCFS_I(inode)->ip_lock);
-	OCFS_I(inode)->ip_clusters = fe->i_clusters;
-	spin_unlock(&OCFS_I(inode)->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
+	OCFS2_I(inode)->ip_clusters = fe->i_clusters;
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 	status = ocfs_journal_dirty(handle, fe_bh);
 	if (status < 0) {
@@ -723,7 +722,7 @@
 		goto leave;
 	}
 
-	status = ocfs_read_block(osb, OCFS_I(inode)->ip_blkno, &bh,
+	status = ocfs_read_block(osb, OCFS2_I(inode)->ip_blkno, &bh,
 				 OCFS_BH_CACHED, inode);
 	if (status < 0) {
 		mlog_errno(status);
@@ -743,7 +742,7 @@
 
 	mlog(0, "extend inode %"MLFu64", new_i_size = %"MLFu64", "
 		"i_size = %lld, fe->i_clusters = %u, clusters_to_add = %u\n", 
-	     OCFS_I(inode)->ip_blkno, new_i_size, i_size_read(inode),
+	     OCFS2_I(inode)->ip_blkno, new_i_size, i_size_read(inode),
 	     fe->i_clusters, clusters_to_add);
 
 	if (!clusters_to_add)
@@ -784,7 +783,7 @@
 	 * until we're done changing it. We depend on i_sem to block
 	 * other extend/truncate calls while we're here. Ordering wrt
 	 * start_trans is important here -- always do it before! */
-	down_write(&OCFS_I(inode)->ip_alloc_sem);
+	down_write(&OCFS2_I(inode)->ip_alloc_sem);
 	drop_alloc_sem = 1;
 do_start_trans:
 	credits = ocfs_calc_extend_credits(osb->sb, fe, clusters_to_add);
@@ -888,7 +887,7 @@
 	     fe->i_clusters, fe->i_size);
 
 	mlog(0, "inode: ip_clusters=%u, i_size=%lld\n",
-	     OCFS_I(inode)->ip_clusters, i_size_read(inode));
+	     OCFS2_I(inode)->ip_clusters, i_size_read(inode));
 
 	fe->i_ctime = fe->i_mtime = CURRENT_TIME.tv_sec;
 	fe->i_ctime_nsec = fe->i_mtime_nsec = cpu_to_le32(CURRENT_TIME.tv_nsec);
@@ -901,7 +900,7 @@
 
 leave:
 	if (drop_alloc_sem) {
-		up_write(&OCFS_I(inode)->ip_alloc_sem);
+		up_write(&OCFS2_I(inode)->ip_alloc_sem);
 		drop_alloc_sem = 0;
 	}
 	if (handle) {
@@ -999,20 +998,22 @@
 		    && status != -ENOSPC
 		    && status != -EINTR
 		    && status != -ERESTARTSYS)
-			mlog(ML_ERROR, "status return of %d extending inode "
-			     "%"MLFu64"\n", status, OCFS_I(inode)->ip_blkno);
+			mlog(ML_ERROR,
+			     "status return of %d extending inode "
+			     "%"MLFu64"\n", status,
+			     OCFS2_I(inode)->ip_blkno);
 		status = 0;
 
 		newsize = bytes_added + i_size_read(inode);
 		if (bytes_added)
 			ocfs2_update_inode_size(inode, newsize);
 
-		spin_lock(&OCFS_I(inode)->ip_lock);
-		if (OCFS_I(inode)->ip_flags & OCFS_INODE_OPEN_DIRECT) {
+		spin_lock(&OCFS2_I(inode)->ip_lock);
+		if (OCFS2_I(inode)->ip_flags & OCFS2_INODE_OPEN_DIRECT) {
 			/* This is a total broken hack for O_DIRECT crack */
-			OCFS_I(inode)->ip_mmu_private = i_size_read(inode);
+			OCFS2_I(inode)->ip_mmu_private = i_size_read(inode);
 		}
-		spin_unlock(&OCFS_I(inode)->ip_lock);
+		spin_unlock(&OCFS2_I(inode)->ip_lock);
 		status = ocfs2_zero_extend(inode);
 		if (status < 0) {
 			mlog_errno(status);

Modified: trunk/fs/ocfs2/heartbeat.c
===================================================================
--- trunk/fs/ocfs2/heartbeat.c	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/heartbeat.c	2005-05-23 23:28:05 UTC (rev 2307)
@@ -41,6 +41,7 @@
 
 #include "alloc.h"
 #include "heartbeat.h"
+#include "inode.h"
 #include "journal.h"
 #include "vote.h"
 

Modified: trunk/fs/ocfs2/inode.c
===================================================================
--- trunk/fs/ocfs2/inode.c	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/inode.c	2005-05-23 23:28:05 UTC (rev 2307)
@@ -55,17 +55,16 @@
 
 extern struct address_space_operations ocfs_aops;
 
-typedef struct _ocfs_find_inode_args
+struct ocfs2_find_inode_args
 {
 	u64 blkno;
 	unsigned long ino;
 	u32 flags;
-}
-ocfs_find_inode_args;
+};
 
-static int ocfs_read_locked_inode(struct inode *inode, ocfs_find_inode_args *args);
+static int ocfs_read_locked_inode(struct inode *inode, struct ocfs2_find_inode_args *args);
 static int ocfs_init_locked_inode(struct inode * inode, void * opaque);
-static int ocfs_find_actor (struct inode *inode, void *opaque);
+static int ocfs2_find_actor (struct inode *inode, void *opaque);
 static int ocfs_truncate_for_delete(ocfs_super *osb, 
 				    struct inode *inode, 
 				    struct buffer_head *fe_bh);
@@ -76,12 +75,12 @@
  */
 struct inode *ocfs_ilookup(ocfs_super *osb, u64 blkno)
 {
-	ocfs_find_inode_args args;
+	struct ocfs2_find_inode_args args;
 
 	args.blkno = blkno;
 	args.flags = 0;
 	args.ino = ino_from_blkno(osb->sb, blkno);
-	return ilookup5(osb->sb, args.ino, ocfs_find_actor, &args);
+	return ilookup5(osb->sb, args.ino, ocfs2_find_actor, &args);
 }
 
 /* 
@@ -92,7 +91,7 @@
 {
 	struct inode *inode = NULL;
 	struct super_block *sb = osb->sb;
-	ocfs_find_inode_args args;
+	struct ocfs2_find_inode_args args;
 	u32 flags = 0;
 
 	mlog_entry("(blkno = %"MLFu64")\n", blkno);
@@ -109,7 +108,7 @@
 	args.flags = flags;
 	args.ino = ino_from_blkno(sb, blkno);
 
-	inode = iget5_locked (sb, args.ino, ocfs_find_actor, 
+	inode = iget5_locked (sb, args.ino, ocfs2_find_actor, 
 			      ocfs_init_locked_inode, &args);
 	/* inode was *not* in the inode cache. 2.6.x requires
 	 * us to do our own read_inode call and unlock it
@@ -134,7 +133,7 @@
 bail:
 	if (inode)
 		mlog(0, "returning inode with number %"MLFu64"\n",
-		     OCFS_I(inode)->ip_blkno);
+		     OCFS2_I(inode)->ip_blkno);
 
 	mlog_exit_ptr(inode);
 
@@ -149,30 +148,18 @@
  * not found? : get_new_inode -> OCFS_INIT_LOCKED_INODE
  */
 
-static int ocfs_find_actor(struct inode *inode, void *opaque)
+static int ocfs2_find_actor(struct inode *inode, void *opaque)
 {
-	ocfs_find_inode_args *args = NULL;
+	struct ocfs2_find_inode_args *args = NULL;
 	int ret = 0;
 
 	mlog_entry ("(0x%p, %lu, 0x%p)\n", inode, inode->i_ino, opaque);
 
 	args = opaque;
 
-	/* XXX: Can this actually ever be passed in as NULL? */
-	if (inode == NULL)
-		goto bail;
+	mlog_bug_on_msg(!inode, "No inode in find actor!\n");
 
-	if (!inode->u.generic_ip) {
-		mlog(ML_ERROR, "inode %lu has no generic_ip (is_bad_inode = "
-			       "%d)!\n", inode->i_ino, is_bad_inode(inode));
-		if (args)
-			mlog(ML_ERROR, "args-blkno = %"MLFu64", "
-				       "args->ino = %lu, args->flags = 0x%x\n",
-			     args->blkno, args->ino, args->flags);
-		BUG();
-	}
-
-	if (OCFS_I(inode)->ip_blkno != args->blkno)
+	if (OCFS2_I(inode)->ip_blkno != args->blkno)
 		goto bail;
 
 	ret = 1;
@@ -188,57 +175,18 @@
  */
 static int ocfs_init_locked_inode(struct inode * inode, void * opaque) 
 {
-	ocfs_find_inode_args *args = opaque;
+	struct ocfs2_find_inode_args *args = opaque;
+
 	mlog_entry("inode = %p, opaque = %p\n", inode, opaque);
 
 	inode->i_ino = args->ino;
+	OCFS2_I(inode)->ip_blkno = args->blkno;
 
 	mlog_exit(0);
 	return 0;
 }
 
 /*
- * ocfs_inode_init_private()
- *
- */
-int ocfs_inode_init_private(struct inode *inode)
-{
-	ocfs_inode_private *i;
-
-	if (!inode)
-		BUG();
-
-	inode->u.generic_ip = kmem_cache_alloc(ocfs2_inode_cache, GFP_NOFS);
-
-	if (!inode->u.generic_ip)
-		return -ENOMEM;
-
-	i = inode->u.generic_ip;
-	memset(i, 0, sizeof(ocfs_inode_private));
-
-	i->ip_flags = 0;
-	atomic_set(&i->ip_clean_buffer_seq, 0);
-	i->ip_open_cnt = 0;
-	spin_lock_init(&i->ip_lock);
-	ocfs2_extent_map_init(inode);
-	INIT_LIST_HEAD(&i->ip_handle_list);
-	INIT_LIST_HEAD(&i->ip_io_markers);
-	i->ip_handle = NULL;
-	i->ip_next_orphan = NULL;
-
-	init_rwsem(&i->ip_alloc_sem);
-	init_MUTEX(&(i->ip_io_sem));
-
-	/* These should be set in read_inode2. */
-	i->ip_clusters = 0;
-	i->ip_blkno = 0ULL;
-	i->ip_mmu_private = 0LL;
-
-	i->ip_flags |= OCFS_INODE_INITIALIZED;
-	return 0;
-} /* ocfs_inode_init_private */
-
-/*
  * ocfs_populate_inode()
  *
  */
@@ -272,12 +220,6 @@
 		goto bail;
 	}
 
-	if (!inode->u.generic_ip && ocfs_inode_init_private(inode)) {
-		/* How can we recover gracefully? */
-		mlog(ML_ERROR, "unable to allocate private data for inode\n");
-		goto bail;
-	}
-
 	inode->i_version = 1;
 	inode->i_generation = le32_to_cpu(fe->i_generation);
 	inode->i_rdev = huge_decode_dev(le64_to_cpu(fe->id1.dev1.i_rdev));
@@ -300,11 +242,13 @@
 	inode->i_ctime.tv_sec = fe->i_ctime;
 	inode->i_ctime.tv_nsec = le32_to_cpu(fe->i_ctime_nsec);
 
-	OCFS_I(inode)->ip_blkno = fe->i_blkno;
+	if (OCFS2_I(inode)->ip_blkno != fe->i_blkno)
+		mlog(ML_ERROR,
+		     "ip_blkno %"MLFu64" != i_blkno %"MLFu64"!\n",
+		     OCFS2_I(inode)->ip_blkno, fe->i_blkno);
 
-	OCFS_I(inode)->ip_clusters = fe->i_clusters;
-	OCFS_I(inode)->ip_inode = inode;
-	OCFS_I(inode)->ip_orphaned_slot = OCFS_INVALID_NODE_NUM;
+	OCFS2_I(inode)->ip_clusters = fe->i_clusters;
+	OCFS2_I(inode)->ip_orphaned_slot = OCFS_INVALID_NODE_NUM;
 
 	if (create_ino)
 		inode->i_ino = ino_from_blkno(inode->i_sb, fe->i_blkno);
@@ -315,10 +259,10 @@
 	inode->i_nlink = fe->i_links_count;
 
 	if (fe->i_flags & OCFS2_LOCAL_ALLOC_FL) {
-		OCFS_I(inode)->ip_flags |= OCFS_INODE_BITMAP;
+		OCFS2_I(inode)->ip_flags |= OCFS2_INODE_BITMAP;
 		mlog(0, "local alloc inode: i_ino=%lu\n", inode->i_ino);
 	} else if (fe->i_flags & OCFS2_BITMAP_FL) {
-		OCFS_I(inode)->ip_flags |= OCFS_INODE_BITMAP;
+		OCFS2_I(inode)->ip_flags |= OCFS2_INODE_BITMAP;
 	} else if (fe->i_flags & OCFS2_SUPER_BLOCK_FL) {
 		mlog(0, "superblock inode: i_ino=%lu\n", inode->i_ino);
 		// we can't actually hit this as read_inode can't handle
@@ -328,20 +272,20 @@
 	
 	switch (inode->i_mode & S_IFMT) {
 	    case S_IFREG:
-		    atomic_set(GET_INODE_CLEAN_SEQ(inode), atomic_read(&osb->clean_buffer_seq));
+		    ocfs2_init_inode_seq(inode);
 		    inode->i_fop = &ocfs_fops;
 		    inode->i_op = &ocfs_file_iops;
 		    i_size_write(inode, fe->i_size);
-		    OCFS_I(inode)->ip_mmu_private = inode->i_size;
+		    OCFS2_I(inode)->ip_mmu_private = inode->i_size;
 		    break;
 	    case S_IFDIR:
-		    atomic_set(GET_INODE_CLEAN_SEQ(inode), atomic_read(&osb->clean_buffer_seq));
+		    ocfs2_init_inode_seq(inode);
 		    inode->i_op = &ocfs_dir_iops;
 		    inode->i_fop = &ocfs_dops;
 		    i_size_write(inode, fe->i_size);
 		    break;
 	    case S_IFLNK:
-		    atomic_set(GET_INODE_CLEAN_SEQ(inode), atomic_read(&osb->clean_buffer_seq));
+		    ocfs2_init_inode_seq(inode);
 		    if (ocfs2_inode_is_fast_symlink(inode))
 			inode->i_op = &ocfs_fast_symlink_inode_operations;
 		    else
@@ -355,13 +299,13 @@
 		    break;
 	}
 
-	status = ocfs2_inode_lock_res_init(&OCFS_I(inode)->ip_meta_lockres,
+	status = ocfs2_inode_lock_res_init(&OCFS2_I(inode)->ip_meta_lockres,
 					   OCFS_TYPE_META, inode);
 	if (status < 0) {
 		mlog_errno(status);
 		goto bail;
 	}
-	status = ocfs2_inode_lock_res_init(&OCFS_I(inode)->ip_data_lockres,
+	status = ocfs2_inode_lock_res_init(&OCFS2_I(inode)->ip_data_lockres,
 					   OCFS_TYPE_DATA, inode);
 	if (status < 0)
 		mlog_errno(status);
@@ -370,7 +314,7 @@
 	return status;
 }				/* ocfs_populate_inode */
 
-static int ocfs_read_locked_inode(struct inode *inode, ocfs_find_inode_args *args)
+static int ocfs_read_locked_inode(struct inode *inode, struct ocfs2_find_inode_args *args)
 {
 	struct super_block *sb;
 	ocfs_super *osb;
@@ -429,7 +373,7 @@
 		BUG();
 
 	if (sysfile)
-	       OCFS_I(inode)->ip_flags |= OCFS_INODE_SYSTEM_FILE;
+	       OCFS2_I(inode)->ip_flags |= OCFS2_INODE_SYSTEM_FILE;
 
 	status = 0;
 
@@ -517,7 +461,7 @@
 
 	mlog_entry("(inode->i_ino = %lu)\n", inode->i_ino);
 
-	if (OCFS_I(inode)->ip_flags & OCFS_INODE_SYSTEM_FILE) {
+	if (OCFS2_I(inode)->ip_flags & OCFS2_INODE_SYSTEM_FILE) {
 		mlog(0, "Skipping system file delete.\n");
 		goto bail;
 	}
@@ -527,14 +471,14 @@
 		goto bail;
 	}
 
-	spin_lock(&OCFS_I(inode)->ip_lock);
-	if (OCFS_I(inode)->ip_flags & OCFS_INODE_SKIP_DELETE) {
-		spin_unlock(&OCFS_I(inode)->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
+	if (OCFS2_I(inode)->ip_flags & OCFS2_INODE_SKIP_DELETE) {
+		spin_unlock(&OCFS2_I(inode)->ip_lock);
 		mlog(0, "Skipping delete of %lu because another node "
 		     "has done this for us.\n", inode->i_ino);
 		goto bail;
 	}
-	spin_unlock(&OCFS_I(inode)->ip_lock);
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 	/* If we're coming from process_vote we can't go into our own
 	 * voting [hello, deadlock city!], so unforuntately we just
@@ -561,14 +505,14 @@
 	/* While we were waiting for the lock, another node might have
 	 * asked to delete the inode. Recheck our flags to catch this
 	 * race and just clear_inode instead.*/
-	spin_lock(&OCFS_I(inode)->ip_lock);
-	if (OCFS_I(inode)->ip_flags & OCFS_INODE_SKIP_DELETE) {
-		spin_unlock(&OCFS_I(inode)->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
+	if (OCFS2_I(inode)->ip_flags & OCFS2_INODE_SKIP_DELETE) {
+		spin_unlock(&OCFS2_I(inode)->ip_lock);
 		mlog(0, "Skipping delete of %lu because another node "
 		     "has done this for us.\n", inode->i_ino);
 		goto bail;
 	}
-	spin_unlock(&OCFS_I(inode)->ip_lock);
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 	status = ocfs2_request_delete_vote(inode);
 	if (status < 0) {
@@ -581,9 +525,9 @@
 		goto bail;
 	}
 
-	spin_lock(&OCFS_I(inode)->ip_lock);
-	orphaned_slot = OCFS_I(inode)->ip_orphaned_slot;
-	spin_unlock(&OCFS_I(inode)->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
+	orphaned_slot = OCFS2_I(inode)->ip_orphaned_slot;
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 	if (orphaned_slot == OCFS_INVALID_NODE_NUM) {
 		/* Nobody knew which slot this inode was orphaned
@@ -591,17 +535,17 @@
 		 * recovery knows how to clean it up so we can safely
 		 * ignore this inode for now on. */
 		mlog(0, "Nobody knew where inode %"MLFu64" was orphaned!\n",
-		     OCFS_I(inode)->ip_blkno);
+		     OCFS2_I(inode)->ip_blkno);
 
 		/* XXX: Is this really necessary? */
-		spin_lock(&OCFS_I(inode)->ip_lock);
+		spin_lock(&OCFS2_I(inode)->ip_lock);
 		SET_INODE_DELETED(inode);
-		spin_unlock(&OCFS_I(inode)->ip_lock);
+		spin_unlock(&OCFS2_I(inode)->ip_lock);
 		goto bail;
 	}
 
 	mlog(0, "Inode %"MLFu64" is ok to wipe from orphan dir slot %d\n",
-	     OCFS_I(inode)->ip_blkno, orphaned_slot);
+	     OCFS2_I(inode)->ip_blkno, orphaned_slot);
 
 	fe = (ocfs2_dinode *) fe_bh->b_data;
 	if (!(fe->i_flags & OCFS2_ORPHANED_FL)) {
@@ -729,13 +673,13 @@
 }				/* ocfs_delete_inode */
 
 /*
- * ocfs_clear_inode()
+ * ocfs2_clear_inode()
  *
  */
-void ocfs_clear_inode (struct inode *inode)
+void ocfs2_clear_inode(struct inode *inode)
 {
 	int status;
-	ocfs_super *osb;
+	struct ocfs2_inode_info *oi = OCFS2_I(inode);
 
 	mlog_entry_void();
 
@@ -743,31 +687,25 @@
 		goto bail;
 
 	mlog(0, "Clearing inode: %"MLFu64", nlink = %u)\n",
-	     OCFS_I(inode)->ip_blkno, inode->i_nlink);
+	     OCFS2_I(inode)->ip_blkno, inode->i_nlink);
 
-	osb = OCFS2_SB(inode->i_sb);
-	mlog_bug_on_msg(osb == NULL,
+	mlog_bug_on_msg(OCFS2_SB(inode->i_sb) == NULL,
 			"Inode=%lu\n", inode->i_ino);
 
-	if (!inode->u.generic_ip) {
-		mlog(ML_ERROR, "inode %lu has no generic_ip!\n", inode->i_ino);
-		goto bail;
-	}
-
 	/* We very well may get a clear_inode before all an inodes
 	 * metadata has hit disk. Of course, we can't drop any cluster
 	 * locks until the journal has finished with it. */
 	if (!INODE_DELETED(inode))
 		ocfs2_checkpoint_inode(inode);
 
-	if (OCFS_I(inode)->ip_blkno == -1)
+	if (oi->ip_blkno == -1)
 		BUG();
 
-	OCFS_ASSERT(list_empty(&OCFS_I(inode)->ip_io_markers));
+	OCFS_ASSERT(list_empty(&oi->ip_io_markers));
 
 	/* blkno == 0 if this inode is newly created and hasn't been
 	 * filled in yet. */
-	if (OCFS_I(inode)->ip_blkno == 0) {
+	if (oi->ip_blkno == 0) {
 		mlog(0, "uhm, blkno = 0!\n");
 		goto bail;
 	}
@@ -778,22 +716,48 @@
 	if (status < 0)
 		mlog_errno(status);
 
-	ocfs2_lock_res_free(&OCFS_I(inode)->ip_meta_lockres);
-	ocfs2_lock_res_free(&OCFS_I(inode)->ip_data_lockres);
+	ocfs2_lock_res_free(&oi->ip_meta_lockres);
+	ocfs2_lock_res_free(&oi->ip_data_lockres);
 
-	OCFS_I(inode)->ip_flags &= ~OCFS_INODE_INITIALIZED;
+	mlog_bug_on_msg(spin_is_locked(&oi->ip_lock),
+			"Clear inode of %"MLFu64", inode is locked\n",
+			oi->ip_blkno);
 
-	/* clean out the inode private ... why?! */
-	memset(inode->u.generic_ip, 0, sizeof(ocfs_inode_private));
+	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);
 
-bail:
-	if (inode && inode->u.generic_ip) {
-		kmem_cache_free(ocfs2_inode_cache, inode->u.generic_ip);
-		inode->u.generic_ip = NULL;
-	}
+	/*
+	 * down_trylock() returns 0, down_write_trylock() returns 1
+	 * kernel 1, world 0
+	 */
+	mlog_bug_on_msg(!down_write_trylock(&oi->ip_alloc_sem),
+			"Clear inode of %"MLFu64", alloc_sem is locked\n",
+			oi->ip_blkno);
+	up_write(&oi->ip_alloc_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);
+	mlog_bug_on_msg(!list_empty(&oi->ip_handle_list),
+			"Clear inode of %"MLFu64" has non empty handle list\n",
+			oi->ip_blkno);
+	mlog_bug_on_msg(oi->ip_handle,
+			"Clear inode of %"MLFu64" has non empty handle pointer\n",
+			oi->ip_blkno);
+
+	atomic_set(&oi->ip_clean_buffer_seq, 0);
+	oi->ip_flags = 0;
+	oi->ip_created_trans = 0;
+	oi->ip_last_trans = 0;
+	oi->ip_dir_start_lookup = 0;
+	oi->ip_blkno = 0ULL;
+
+
+bail:
 	mlog_exit_void ();
-}				/* ocfs_clear_inode */
+}
 
 /*
  * TODO: this should probably be merged into ocfs_get_block
@@ -861,7 +825,7 @@
 	ocfs_super *osb;
 
 	mlog_entry("(inode = 0x%p, ino = %"MLFu64")\n", inode, 
-		   inode ? OCFS_I(inode)->ip_blkno : 0ULL);
+		   inode ? OCFS2_I(inode)->ip_blkno : 0ULL);
 
 	if (!inode) {
 		mlog(0, "eep, no inode!\n");
@@ -871,14 +835,14 @@
 
 	osb = OCFS2_SB(inode->i_sb);
 
-	spin_lock(&OCFS_I(inode)->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
 	if (INODE_DELETED(inode)) {
-		spin_unlock(&OCFS_I(inode)->ip_lock);
+		spin_unlock(&OCFS2_I(inode)->ip_lock);
 		mlog(0, "inode deleted!\n");
 		status = -ENOENT;
 		goto bail;
 	}
-	spin_unlock(&OCFS_I(inode)->ip_lock);
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 	status = ocfs2_meta_lock(inode, NULL, NULL, 0);
 	if (status < 0) {
@@ -906,7 +870,7 @@
 	int status;
 	ocfs2_dinode *fe = (ocfs2_dinode *) bh->b_data;
 
-	mlog_entry("(inode %"MLFu64")\n", OCFS_I(inode)->ip_blkno);
+	mlog_entry("(inode %"MLFu64")\n", OCFS2_I(inode)->ip_blkno);
 
 	status = ocfs_journal_access(handle, inode, bh,
 				     OCFS_JOURNAL_ACCESS_WRITE);
@@ -915,9 +879,9 @@
 		goto leave;
 	}
 
-	spin_lock(&OCFS_I(inode)->ip_lock);
-	fe->i_clusters = OCFS_I(inode)->ip_clusters;
-	spin_unlock(&OCFS_I(inode)->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
+	fe->i_clusters = OCFS2_I(inode)->ip_clusters;
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 	fe->i_size = (u64)i_size_read(inode);
 	fe->i_links_count = inode->i_nlink;
@@ -953,15 +917,14 @@
 void ocfs_refresh_inode(struct inode *inode, 
 			ocfs2_dinode *fe)
 {
-	ocfs_inode_private *oip = OCFS_I(inode);
 	ocfs_super *osb = OCFS2_SB(inode->i_sb);
 
-	spin_lock(&oip->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
 
-	oip->ip_clusters = fe->i_clusters;
+	OCFS2_I(inode)->ip_clusters = fe->i_clusters;
 	i_size_write(inode, fe->i_size);
 	if (S_ISREG(inode->i_mode)) {
-		oip->ip_mmu_private = i_size_read(inode);
+		OCFS2_I(inode)->ip_mmu_private = i_size_read(inode);
 	}
 	inode->i_nlink = fe->i_links_count;
 	inode->i_uid = fe->i_uid;
@@ -979,5 +942,5 @@
 	inode->i_ctime.tv_sec = fe->i_ctime;
 	inode->i_ctime.tv_nsec = le32_to_cpu(fe->i_ctime_nsec);
 
-	spin_unlock(&oip->ip_lock);
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 }				/* ocfs_refresh_inode */

Modified: trunk/fs/ocfs2/inode.h
===================================================================
--- trunk/fs/ocfs2/inode.h	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/inode.h	2005-05-23 23:28:05 UTC (rev 2307)
@@ -26,11 +26,84 @@
 #ifndef OCFS2_INODE_H
 #define OCFS2_INODE_H
 
+/* OCFS2 Inode Private Data */
+struct ocfs2_inode_info
+{
+	u64			ip_blkno;
+
+	ocfs2_lock_res		ip_meta_lockres;
+	ocfs2_lock_res		ip_data_lockres;
+
+	/* protects allocation changes on this inode. */
+	struct rw_semaphore	ip_alloc_sem;
+
+	/* These fields are protected by ip_lock */
+	spinlock_t		ip_lock;
+	u32			ip_open_count;
+	u32			ip_clusters;
+	loff_t			ip_mmu_private;
+	struct ocfs2_extent_map	ip_map;
+	struct list_head	ip_io_markers;
+	int			ip_orphaned_slot;
+
+	struct semaphore	ip_io_sem;
+
+	/* Used by the journalling code to attach an inode to a
+	 * handle.  These are protected by ip_io_sem in order to lock
+	 * out other I/O to the inode until we either commit or
+	 * abort. */
+	struct list_head	ip_handle_list;
+	struct _ocfs_journal_handle *ip_handle;
+
+	atomic_t		ip_clean_buffer_seq;
+	u32			ip_flags; /* see below */
+
+	/* protected by recovery_lock. */
+	struct inode		*ip_next_orphan;
+
+	u32			ip_dir_start_lookup;
+
+	/* next two are protected by trans_inc_lock */
+	/* which transaction were we created on? Zero if none. */
+	unsigned long		ip_created_trans;
+	/* last transaction we were a part of. */
+	unsigned long		ip_last_trans;
+
+	struct inode		vfs_inode;
+};
+
+/*
+ * Flags for the ip_flags field
+ */
+/* Special types of inodes */
+#define OCFS2_INODE_SYSTEM_FILE		0x00000001
+#define OCFS2_INODE_JOURNAL		0x00000002
+#define OCFS2_INODE_BITMAP		0x00000004
+/* Has the inode been deleted yet? */
+#define OCFS2_INODE_DELETED		0x00000008
+/* Another node is deleting, so our delete is a nop */
+#define OCFS2_INODE_SKIP_DELETE		0x00000010
+/* Does someone have the file open O_DIRECT */
+#define OCFS2_INODE_OPEN_DIRECT		0x00000020
+
+static inline struct ocfs2_inode_info *OCFS2_I(struct inode *inode)
+{
+	return container_of(inode, struct ocfs2_inode_info, vfs_inode);
+}
+
+#define INODE_DELETED(i) (OCFS2_I(i)->ip_flags & OCFS2_INODE_DELETED)
+#define SET_INODE_DELETED(i) (OCFS2_I(i)->ip_flags |= OCFS2_INODE_DELETED)
+#define CLEAR_INODE_DELETED(i) (OCFS2_I(i)->ip_flags &= (~OCFS2_INODE_DELETED))
+
+#define INODE_JOURNAL(i) (OCFS2_I(i)->ip_flags & OCFS2_INODE_JOURNAL)
+#define SET_INODE_JOURNAL(i) (OCFS2_I(i)->ip_flags |= OCFS2_INODE_JOURNAL)
+#define CLEAR_INODE_JOURNAL(i) (OCFS2_I(i)->ip_flags &= (~OCFS2_INODE_JOURNAL))
+
 extern kmem_cache_t *ocfs2_inode_cache;
 
 struct buffer_head *ocfs_bread(struct inode * inode, int block,
 			       int *err, int reada);
-void ocfs_clear_inode(struct inode *inode);
+void ocfs2_clear_inode(struct inode *inode);
 void ocfs_delete_inode(struct inode *inode);
 struct inode *ocfs_iget(ocfs_super *osb, u64 feoff);
 struct inode *ocfs_ilookup(ocfs_super *osb, u64 feoff);

Modified: trunk/fs/ocfs2/journal.c
===================================================================
--- trunk/fs/ocfs2/journal.c	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/journal.c	2005-05-23 23:28:05 UTC (rev 2307)
@@ -214,26 +214,27 @@
 	down(&inode->i_sem);
 
 	/* sanity check */
-	OCFS_ASSERT(!OCFS_I(inode)->ip_handle);
-	OCFS_ASSERT(list_empty(&OCFS_I(inode)->ip_handle_list));
+	OCFS_ASSERT(!OCFS2_I(inode)->ip_handle);
+	OCFS_ASSERT(list_empty(&OCFS2_I(inode)->ip_handle_list));
 
-	OCFS_I(inode)->ip_handle = handle;
-	list_del(&(OCFS_I(inode)->ip_handle_list));
-	list_add_tail(&(OCFS_I(inode)->ip_handle_list), &(handle->inode_list));
+	OCFS2_I(inode)->ip_handle = handle;
+	list_del(&(OCFS2_I(inode)->ip_handle_list));
+	list_add_tail(&(OCFS2_I(inode)->ip_handle_list), &(handle->inode_list));
 }
 
 static void ocfs_handle_unlock_inodes(ocfs_journal_handle *handle) 
 {
 	struct list_head *p, *n;
 	struct inode *inode;
-	ocfs_inode_private *ip;
+	struct ocfs2_inode_info *oi;
 
 	list_for_each_safe(p, n, &handle->inode_list) {
-		ip = list_entry(p, ocfs_inode_private, ip_handle_list);
-		inode = ip->ip_inode;
+		oi = list_entry(p, struct ocfs2_inode_info,
+				ip_handle_list);
+		inode = &oi->vfs_inode;
 
-		OCFS_I(inode)->ip_handle = NULL;
-		list_del_init(&OCFS_I(inode)->ip_handle_list);
+		OCFS2_I(inode)->ip_handle = NULL;
+		list_del_init(&OCFS2_I(inode)->ip_handle_list);
 
 		up(&inode->i_sem);
 		iput(inode);
@@ -391,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:
@@ -406,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",
@@ -489,7 +490,7 @@
 		if (atomic_read(&inode->i_count) == 1)
 			mlog(ML_ERROR,
 			     "Inode %"MLFu64", I'm doing a last iput for!",
-			     OCFS_I(inode)->ip_blkno);
+			     OCFS2_I(inode)->ip_blkno);
 		iput(inode);
 		kmem_cache_free(ocfs2_lock_cache, lock);
 	}
@@ -551,17 +552,17 @@
 	mlog(0, "fe->i_size = %"MLFu64"\n", fe->i_size);
 	mlog(0, "fe->i_clusters = %u\n", fe->i_clusters);
 	mlog(0, "fe->i_blkno = %"MLFu64"\n", fe->i_blkno);
-	mlog(0, "inode->ip_clusters = %u\n", OCFS_I(inode)->ip_clusters);
+	mlog(0, "inode->ip_clusters = %u\n", OCFS2_I(inode)->ip_clusters);
 
-	if (OCFS_I(inode)->ip_clusters != fe->i_clusters) 
+	if (OCFS2_I(inode)->ip_clusters != fe->i_clusters) 
 		mlog(ML_ERROR, "inode and fe alloc sizes differ! (%u != %u",
-		     OCFS_I(inode)->ip_clusters, fe->i_clusters);
+		     OCFS2_I(inode)->ip_clusters, fe->i_clusters);
 	if (inode->i_size != fe->i_size)
 		mlog(ML_ERROR,
 		     "inode and fe i_size's differ! (%lld != %"MLFu64")",
 		     inode->i_size, fe->i_size);
 
-	OCFS_I(inode)->ip_open_cnt++;
+	OCFS2_I(inode)->ip_open_count++;
 
 	/* call the kernels journal init function now */
 	j_journal = journal_init_inode(inode);
@@ -598,7 +599,7 @@
 			brelse(bh);
 		}
 		if (inode) {
-			OCFS_I(inode)->ip_open_cnt--;
+			OCFS2_I(inode)->ip_open_count--;
 			iput(inode);
 		}
 	}
@@ -695,7 +696,7 @@
 	/* Shutdown the kernel journal system */
 	journal_destroy(journal->j_journal);
 
-	OCFS_I(inode)->ip_open_cnt--;
+	OCFS2_I(inode)->ip_open_count--;
 
 	/* unlock our journal */
 	ocfs2_meta_unlock(inode, 1);
@@ -1140,7 +1141,7 @@
 	     node_num, slot_num,
 	     MAJOR(osb->sb->s_dev), MINOR(osb->sb->s_dev));
 
-	OCFS_I(inode)->ip_clusters = fe->i_clusters;
+	OCFS2_I(inode)->ip_clusters = fe->i_clusters;
 
 	status = ocfs_force_read_journal(inode);
 	if (status < 0) {
@@ -1461,8 +1462,8 @@
 				continue;
 
 			mlog(0, "queue orphan %"MLFu64"\n",
-			     OCFS_I(iter)->ip_blkno);
-			OCFS_I(iter)->ip_next_orphan = inode;
+			     OCFS2_I(iter)->ip_blkno);
+			OCFS2_I(iter)->ip_next_orphan = inode;
 			inode = iter;
 		}
 		brelse(bh);
@@ -1476,13 +1477,14 @@
 	orphan_dir_inode = NULL;
 
 	while (inode) {
-		mlog(0, "iput orphan %"MLFu64"\n", OCFS_I(inode)->ip_blkno);
+		mlog(0, "iput orphan %"MLFu64"\n",
+		     OCFS2_I(inode)->ip_blkno);
 
-		iter = OCFS_I(inode)->ip_next_orphan;
+		iter = OCFS2_I(inode)->ip_next_orphan;
 
-		spin_lock(&OCFS_I(inode)->ip_lock);
-		OCFS_I(inode)->ip_orphaned_slot = slot;
-		spin_unlock(&OCFS_I(inode)->ip_lock);
+		spin_lock(&OCFS2_I(inode)->ip_lock);
+		OCFS2_I(inode)->ip_orphaned_slot = slot;
+		spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 		iput(inode);
 

Modified: trunk/fs/ocfs2/journal.h
===================================================================
--- trunk/fs/ocfs2/journal.h	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/journal.h	2005-05-23 23:28:05 UTC (rev 2307)
@@ -87,7 +87,7 @@
 					     struct inode *inode)
 {
 	spin_lock(&trans_inc_lock);
-	OCFS_I(inode)->ip_last_trans = journal->j_trans_id;
+	OCFS2_I(inode)->ip_last_trans = journal->j_trans_id;
 	spin_unlock(&trans_inc_lock);
 }
 
@@ -102,7 +102,7 @@
 	ocfs_journal *journal = OCFS2_SB(inode->i_sb)->journal;
 
 	spin_lock(&trans_inc_lock);
-	ret = time_after(journal->j_trans_id, OCFS_I(inode)->ip_last_trans);
+	ret = time_after(journal->j_trans_id, OCFS2_I(inode)->ip_last_trans);
 	spin_unlock(&trans_inc_lock);
 	return ret;
 }
@@ -117,13 +117,13 @@
 	/* System files are never "new" as they're written out by
 	 * mkfs. This helps us early during mount, before we have the
 	 * journal open and j_trans_id could be junk. */
-	if (OCFS_I(inode)->ip_flags & OCFS_INODE_SYSTEM_FILE)
+	if (OCFS2_I(inode)->ip_flags & OCFS2_INODE_SYSTEM_FILE)
 		return 0;
 	spin_lock(&trans_inc_lock);
 	ret = !(time_after(OCFS2_SB(inode->i_sb)->journal->j_trans_id, 
-			   OCFS_I(inode)->ip_created_trans));
+			   OCFS2_I(inode)->ip_created_trans));
 	if (!ret)
-		OCFS_I(inode)->ip_created_trans = 0;
+		OCFS2_I(inode)->ip_created_trans = 0;
 	spin_unlock(&trans_inc_lock);
 	return ret;
 }
@@ -132,7 +132,7 @@
 				      struct inode *inode)
 {
 	spin_lock(&trans_inc_lock);
-	OCFS_I(inode)->ip_created_trans = osb->journal->j_trans_id;
+	OCFS2_I(inode)->ip_created_trans = osb->journal->j_trans_id;
 	spin_unlock(&trans_inc_lock);
 }
 

Modified: trunk/fs/ocfs2/localalloc.c
===================================================================
--- trunk/fs/ocfs2/localalloc.c	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/localalloc.c	2005-05-23 23:28:05 UTC (rev 2307)
@@ -37,6 +37,7 @@
 
 #include "alloc.h"
 #include "dlmglue.h"
+#include "inode.h"
 #include "journal.h"
 #include "localalloc.h"
 #include "suballoc.h"
@@ -133,8 +134,8 @@
 		mlog_errno(status);
 		goto bail;
 	}
-	status = ocfs_read_block(osb, OCFS_I(inode)->ip_blkno, &alloc_bh, 0, 
-				 inode);
+	status = ocfs_read_block(osb, OCFS2_I(inode)->ip_blkno,
+				 &alloc_bh, 0, inode);
 	if (status < 0) {
 		mlog_errno(status);
 		goto bail;
@@ -144,7 +145,7 @@
 
 	if (!(alloc->i_flags & (OCFS2_LOCAL_ALLOC_FL|OCFS2_BITMAP_FL))) {
 		mlog(ML_ERROR, "Invalid local alloc inode, %"MLFu64"\n",
-			       OCFS_I(inode)->ip_blkno);
+			       OCFS2_I(inode)->ip_blkno);
 		status = -EINVAL;
 		goto bail;
 	}
@@ -205,7 +206,6 @@
 	int status;
 	ocfs_journal_handle *handle = NULL;
 	struct inode *local_alloc_inode = NULL;
-	ocfs_inode_private *oip;
 	struct buffer_head *bh = NULL;
 	struct buffer_head *main_bm_bh = NULL;
 	struct inode *main_bm_inode = NULL;
@@ -226,7 +226,6 @@
 		mlog_errno(status);
 		goto bail;
 	}
-	oip = OCFS_I(local_alloc_inode);
 
 	osb->local_alloc_state = OCFS2_LA_DISABLED;
 
@@ -344,8 +343,8 @@
 		goto bail;
 	}
 
-	status = ocfs_read_block(osb, OCFS_I(inode)->ip_blkno, &alloc_bh, 0,
-				 inode);
+	status = ocfs_read_block(osb, OCFS2_I(inode)->ip_blkno,
+				 &alloc_bh, 0, inode);
 	if (status < 0) {
 		mlog_errno(status);
 		goto bail;

Modified: trunk/fs/ocfs2/mmap.c
===================================================================
--- trunk/fs/ocfs2/mmap.c	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/mmap.c	2005-05-23 23:28:05 UTC (rev 2307)
@@ -171,7 +171,7 @@
 
 	OCFS_ASSERT(inode);
 
-	return OCFS_I(inode)->ip_blkno;
+	return OCFS2_I(inode)->ip_blkno;
 }
 
 static inline struct rb_node * __ocfs2_buffer_lock_ctxt_root(
@@ -192,7 +192,7 @@
 	OCFS_ASSERT(ctxt);
 	OCFS_ASSERT(inode);
 
-	blkno = OCFS_I(inode)->ip_blkno;
+	blkno = OCFS2_I(inode)->ip_blkno;
 
 	while(*p) {
 		parent = *p;
@@ -552,7 +552,7 @@
 			 * level cluster lock. */
 			mlog(0, "inode %"MLFu64", had a PR, looping back "
 				"for EX\n",
-			     OCFS_I(inode)->ip_blkno);
+			     OCFS2_I(inode)->ip_blkno);
 			ocfs2_meta_unlock(inode, level);
 			info->wl_have_target_meta = 0;
 			level = 1;
@@ -575,7 +575,7 @@
 				mlog_errno(status);
 				mlog(ML_ERROR, "Failed to extend inode %"MLFu64
 				     " from %lld to %"MLFu64,
-				     OCFS_I(inode)->ip_blkno,
+				     OCFS2_I(inode)->ip_blkno,
 				     *ppos, info->wl_newsize);
 			}
 			ret = status;
@@ -599,7 +599,8 @@
 		    && status != -EINTR
 		    && status != -ERESTARTSYS)
 			mlog(ML_ERROR, "status return of %d extending inode "
-			     "%"MLFu64"\n", status, OCFS_I(inode)->ip_blkno);
+			     "%"MLFu64"\n", status,
+			     OCFS2_I(inode)->ip_blkno);
 		status = 0;
 	}
 
@@ -653,7 +654,7 @@
 		inode = binode->ba_inode;
 
 		printk("(%u) ocfs2: inode %llu, locked %d, is target? %s\n",
-		       current->pid, OCFS_I(inode)->ip_blkno,
+		       current->pid, OCFS2_I(inode)->ip_blkno,
 		       binode->ba_locked,
 		       ocfs2_buffer_lock_is_target(ctxt, inode) ? "yes" : 
 		       "no");

Modified: trunk/fs/ocfs2/mmap.h
===================================================================
--- trunk/fs/ocfs2/mmap.h	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/mmap.h	2005-05-23 23:28:05 UTC (rev 2307)
@@ -28,42 +28,40 @@
 static inline void ocfs2_add_io_marker(struct inode *inode,
 				       ocfs2_io_marker *task)
 {
-	ocfs_inode_private *oip = OCFS_I(inode);
+	struct ocfs2_inode_info *oi = OCFS2_I(inode);
 
 	task->io_task = current;
-	spin_lock(&oip->ip_lock);
-	list_add(&task->io_list, &oip->ip_io_markers);
-	spin_unlock(&oip->ip_lock);
+	spin_lock(&oi->ip_lock);
+	list_add(&task->io_list, &oi->ip_io_markers);
+	spin_unlock(&oi->ip_lock);
 }
 
 static inline void ocfs2_del_io_marker(struct inode *inode,
 				       ocfs2_io_marker *task)
 {
-	ocfs_inode_private *oip = OCFS_I(inode);
-
-	spin_lock(&oip->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
 	if (!list_empty(&task->io_list))
 		list_del_init(&task->io_list);
-	spin_unlock(&oip->ip_lock);
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 }
 
 static inline int ocfs2_is_in_io_marker_list(struct inode *inode,
 					   struct task_struct *task)
 {
 	int ret = 0;
-	ocfs_inode_private *oip = OCFS_I(inode);
+	struct ocfs2_inode_info *oi = OCFS2_I(inode);
 	struct list_head *p;
 	ocfs2_io_marker *tmp;
 
-	spin_lock(&oip->ip_lock);
-	list_for_each(p, &oip->ip_io_markers) {
+	spin_lock(&oi->ip_lock);
+	list_for_each(p, &oi->ip_io_markers) {
 		tmp = list_entry(p, ocfs2_io_marker, io_list);
 		if (tmp->io_task == task) {
 			ret = 1;
 			break;
 		}
 	}
-	spin_unlock(&oip->ip_lock);
+	spin_unlock(&oi->ip_lock);
 
 	return ret;
 }

Modified: trunk/fs/ocfs2/namei.c
===================================================================
--- trunk/fs/ocfs2/namei.c	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/namei.c	2005-05-23 23:28:05 UTC (rev 2307)
@@ -266,14 +266,14 @@
 	memset(new_bh->b_data, 0, osb->sb->s_blocksize);
 
 	de = (struct ocfs2_dir_entry *) new_bh->b_data;
-	de->inode = cpu_to_le64(OCFS_I(inode)->ip_blkno);
+	de->inode = cpu_to_le64(OCFS2_I(inode)->ip_blkno);
 	de->name_len = 1;
 	de->rec_len =
 		cpu_to_le16(OCFS2_DIR_REC_LEN(de->name_len));
 	strcpy (de->name, ".");
 	ocfs_set_de_type(de, S_IFDIR);
 	de = (struct ocfs2_dir_entry *) ((char *) de + le16_to_cpu(de->rec_len));
-	de->inode = cpu_to_le64(OCFS_I(parent)->ip_blkno);
+	de->inode = cpu_to_le64(OCFS2_I(parent)->ip_blkno);
 	de->rec_len = cpu_to_le16(inode->i_sb->s_blocksize -
 				  OCFS2_DIR_REC_LEN(1));
 	de->name_len = 2;
@@ -328,24 +328,18 @@
 
 	if (S_ISDIR(mode) && (dir->i_nlink >= OCFS2_LINK_MAX)) {
 		mlog(ML_ERROR, "inode %"MLFu64" has i_nlink of %u\n",
-		     OCFS_I(dir)->ip_blkno, dir->i_nlink);
+		     OCFS2_I(dir)->ip_blkno, dir->i_nlink);
 		status = -EMLINK;
 		goto leave;
 	}
 
-	inode = new_inode (dir->i_sb);
-	if (IS_ERR (inode)) {
+	inode = new_inode(dir->i_sb);
+	if (IS_ERR(inode)) {
 		status = PTR_ERR(inode);
 		mlog(ML_ERROR, "new_inode failed!\n");
 		goto leave;
 	}
 
-	if (ocfs_inode_init_private(inode)) {
-		status = -ENOMEM;
-		mlog_errno(status);
-		goto leave;
-	}
-
 	handle = ocfs_alloc_handle(osb);
 	if (handle == NULL) {
 		status = -ENOMEM;
@@ -412,6 +406,7 @@
 
 	fe = (ocfs2_dinode *)new_fe_bh->b_data;
 
+	OCFS2_I(inode)->ip_blkno = fe->i_blkno;
 	if (ocfs_populate_inode(inode, fe, 1) < 0) {
 		mlog(ML_ERROR, "populate inode failed! bh->b_blocknr=%llu, "
 			       "i_blkno=%"MLFu64", i_ino=%lu\n",
@@ -565,7 +560,7 @@
 		fe->id1.dev1.i_rdev = cpu_to_le64(huge_encode_dev(dev));
 
 	if (S_ISLNK (mode) || S_ISDIR (mode) || S_ISREG (mode)) 
-		atomic_set(GET_INODE_CLEAN_SEQ(inode), atomic_read(&osb->clean_buffer_seq));
+		ocfs2_init_inode_seq(inode);
 
 	if (S_ISDIR (mode))
 		fe->i_links_count = 2;
@@ -728,7 +723,8 @@
 		goto bail;
 	}
 
-	err = ocfs_add_entry(handle, dentry, inode, OCFS_I(inode)->ip_blkno, 
+	err = ocfs_add_entry(handle, dentry, inode,
+			     OCFS2_I(inode)->ip_blkno, 
 			     parent_fe_bh, de_bh);
 	if (err) {
 		fe->i_links_count--;
@@ -778,7 +774,7 @@
 
 	OCFS_ASSERT((dentry->d_parent->d_inode == dir));
 
-	mlog(0, "ino = %"MLFu64"\n", OCFS_I(inode)->ip_blkno);
+	mlog(0, "ino = %"MLFu64"\n", OCFS2_I(inode)->ip_blkno);
 
 	if (inode == osb->root_inode) {
 		mlog(0, "Cannot delete the root directory\n");
@@ -809,7 +805,7 @@
 		goto leave;
 	}
 
-	if (blkno != OCFS_I(inode)->ip_blkno)
+	if (blkno != OCFS2_I(inode)->ip_blkno)
 		BUG();
 
 	status = ocfs2_meta_lock(inode, handle, &fe_bh, 1);
@@ -943,14 +939,13 @@
 			    struct inode *inode2)
 {
 	int status;
-	ocfs_inode_private *oip1 = OCFS_I(inode1);
-	ocfs_inode_private *oip2 = OCFS_I(inode2);
+	struct ocfs2_inode_info *oi1 = OCFS2_I(inode1);
+	struct ocfs2_inode_info *oi2 = OCFS2_I(inode2);
 	struct buffer_head **tmpbh;
 	struct inode *tmpinode;
 
 	mlog_entry("(inode1 = %"MLFu64", inode2 = %"MLFu64")\n", 
-		       OCFS_I(inode1)->ip_blkno,
-		       OCFS_I(inode2)->ip_blkno);
+		   oi1->ip_blkno, oi2->ip_blkno);
 
 	OCFS_ASSERT(handle);
 
@@ -960,8 +955,8 @@
 		*bh2 = NULL;
 
 	/* we always want to lock the one with the lower lockid first. */
-	if (oip1->ip_blkno != oip2->ip_blkno) {
-		if (oip1->ip_blkno < oip2->ip_blkno) {
+	if (oi1->ip_blkno != oi2->ip_blkno) {
+		if (oi1->ip_blkno < oi2->ip_blkno) {
 			/* switch id1 and id2 around */
 			mlog(0, "switching them around...\n");
 			tmpbh = bh2;
@@ -1095,7 +1090,7 @@
 
 		status = -EIO;
 		if (le64_to_cpu(PARENT_INO(old_inode_de_bh->b_data)) != 
-		    OCFS_I(old_dir)->ip_blkno)
+		    OCFS2_I(old_dir)->ip_blkno)
 			goto bail;
 		status = -EMLINK;
 		if (!new_inode && new_dir!=old_dir &&
@@ -1124,7 +1119,7 @@
 	 *  and merrily kill the link to whatever was created under the
 	 *  same name. Goodbye sticky bit ;-<
 	 */
-	if (le64_to_cpu(old_de->inode) != OCFS_I(old_inode)->ip_blkno)
+	if (le64_to_cpu(old_de->inode) != OCFS2_I(old_inode)->ip_blkno)
 		goto bail;
 
 	/* check if the target already exists (in which case we need
@@ -1152,7 +1147,7 @@
 		if (!new_inode)
 			BUG();
 
-		if (newfe_blkno != OCFS_I(new_inode)->ip_blkno)
+		if (newfe_blkno != OCFS2_I(new_inode)->ip_blkno)
 			BUG();
 
 		status = ocfs2_meta_lock(new_inode, handle, &newfe_bh, 1);
@@ -1235,7 +1230,7 @@
 			goto bail;
 		}
 		new_de->inode =
-			le64_to_cpu(OCFS_I(old_inode)->ip_blkno);
+			le64_to_cpu(OCFS2_I(old_inode)->ip_blkno);
 		new_de->file_type = old_de->file_type;
 		new_dir->i_version++;
 		status = ocfs_journal_dirty(handle, new_de_bh);
@@ -1257,7 +1252,7 @@
 	} else {
 		/* if the name was not found in new_dir, add it now */
 		status = ocfs_add_entry (handle, new_dentry, old_inode, 
-					 OCFS_I(old_inode)->ip_blkno, 
+					 OCFS2_I(old_inode)->ip_blkno, 
 					 new_dir_bh, insert_entry_bh);
 	}
 
@@ -1281,7 +1276,7 @@
 					     old_inode_de_bh,
 					     OCFS_JOURNAL_ACCESS_WRITE);
 		PARENT_INO(old_inode_de_bh->b_data) =
-			le64_to_cpu(OCFS_I(new_dir)->ip_blkno);
+			le64_to_cpu(OCFS2_I(new_dir)->ip_blkno);
 		status = ocfs_journal_dirty(handle, old_inode_de_bh);
 		old_dir->i_nlink--;
 		if (new_inode) {
@@ -1301,7 +1296,7 @@
 				mlog(ML_ERROR, "need to change nlink for new "
 					       "dir %"MLFu64" from %d to %d "
 					       "but bh is NULL\n",
-				     OCFS_I(new_dir)->ip_blkno, 
+				     OCFS2_I(new_dir)->ip_blkno, 
 				     (int)new_dir_nlink, new_dir->i_nlink);
 			} else {
 				ocfs2_dinode *fe;
@@ -1320,7 +1315,8 @@
 			mlog(ML_ERROR, "need to change nlink for old dir "
 				       "%"MLFu64" from %d to %d but bh is "
 				       "NULL!\n",
-			     OCFS_I(old_dir)->ip_blkno, (int)old_dir_nlink,
+			     OCFS2_I(old_dir)->ip_blkno,
+			     (int)old_dir_nlink,
 			     old_dir->i_nlink);
 		} else {
 			ocfs2_dinode *fe;
@@ -1391,7 +1387,7 @@
 		       inode->i_blocks, i_size_read(inode), blocks);
 
 	/* Sanity check -- make sure we're going to fit. */
-	if (bytes_left > ocfs2_clusters_to_bytes(sb, OCFS_I(inode)->ip_clusters)) {
+	if (bytes_left > ocfs2_clusters_to_bytes(sb, OCFS2_I(inode)->ip_clusters)) {
 		status = -EIO;
 		mlog_errno(status);
 		goto bail;
@@ -1510,14 +1506,6 @@
 		goto bail;
 	}
 
-	if (ocfs_inode_init_private(inode)) {
-		status = -ENOMEM;
-		mlog_errno(status);
-		iput(inode);
-		inode = NULL;
-		goto bail;
-	}
-
 	credits = ocfs_calc_symlink_credits(sb);
 
 	handle = ocfs_alloc_handle(osb);
@@ -1584,6 +1572,7 @@
 
 	fe = (ocfs2_dinode *) new_fe_bh->b_data;
 
+	OCFS2_I(inode)->ip_blkno = fe->i_blkno;
 	if (ocfs_populate_inode (inode, fe, 1) < 0) {
 		mlog(ML_ERROR, "populate inode failed! bh->b_blocknr=%llu, "
 		     "i_blkno=%"MLFu64", i_ino=%lu\n",
@@ -1683,7 +1672,7 @@
 	if (error_msg != NULL)
 		mlog(ML_ERROR, "bad entry in directory #%"MLFu64": %s - "
 		     "offset=%lu, inode=%"MLFu64", rec_len=%d, name_len=%d",
-		     OCFS_I(dir)->ip_blkno, error_msg, offset,
+		     OCFS2_I(dir)->ip_blkno, error_msg, offset,
 		     le64_to_cpu(de->inode), rlen, de->name_len);
 	return error_msg == NULL ? 1 : 0;
 }
@@ -1891,7 +1880,7 @@
 	sb = dir->i_sb;
 
 	nblocks = i_size_read(dir) >> sb->s_blocksize_bits;
-	start = OCFS_I(dir)->ip_dir_start_lookup;
+	start = OCFS2_I(dir)->ip_dir_start_lookup;
 	if (start >= nblocks)
 		start = 0;
 	block = start;
@@ -1936,7 +1925,7 @@
 		i = search_dirblock(bh, dir, name, namelen,
 				    block << sb->s_blocksize_bits, res_dir);
 		if (i == 1) {
-			OCFS_I(dir)->ip_dir_start_lookup = block;
+			OCFS2_I(dir)->ip_dir_start_lookup = block;
 			ret = bh;
 			goto cleanup_and_exit;
 		} else {
@@ -2010,7 +1999,7 @@
 	struct buffer_head *orphan_dir_bh = NULL;
 	int status = 0;
 
-	status = ocfs_blkno_stringify(OCFS_I(inode)->ip_blkno, name);
+	status = ocfs_blkno_stringify(OCFS2_I(inode)->ip_blkno, name);
 	if (status < 0) {
 		mlog_errno(status);
 		goto leave;
@@ -2075,7 +2064,8 @@
 		goto leave;
 	}
 
-	status = ocfs_read_block(osb, OCFS_I(orphan_dir_inode)->ip_blkno, 
+	status = ocfs_read_block(osb,
+				 OCFS2_I(orphan_dir_inode)->ip_blkno, 
 				 &orphan_dir_bh, OCFS_BH_CACHED, 
 				 orphan_dir_inode);
 	if (status < 0) {
@@ -2105,7 +2095,8 @@
 
 	status = __ocfs_add_entry(handle, orphan_dir_inode, name,
 				  OCFS2_ORPHAN_NAMELEN, inode,
-				  OCFS_I(inode)->ip_blkno, orphan_dir_bh,
+				  OCFS2_I(inode)->ip_blkno,
+				  orphan_dir_bh,
 				  de_bh);
 	if (status < 0) {
 		mlog_errno(status);
@@ -2117,12 +2108,12 @@
 	/* Record which orphan dir our inode now resides
 	 * in. delete_inode will use this to determine which orphan
 	 * dir to lock. */
-	spin_lock(&OCFS_I(inode)->ip_lock);
-	OCFS_I(inode)->ip_orphaned_slot = osb->slot_num;
-	spin_unlock(&OCFS_I(inode)->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
+	OCFS2_I(inode)->ip_orphaned_slot = osb->slot_num;
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 	mlog(0, "Inode %"MLFu64" orphaned in slot %d\n",
-	     OCFS_I(inode)->ip_blkno, osb->slot_num);
+	     OCFS2_I(inode)->ip_blkno, osb->slot_num);
 
 leave:
 	if (orphan_dir_inode)
@@ -2148,14 +2139,14 @@
 
 	mlog_entry_void();
 
-	status = ocfs_blkno_stringify(OCFS_I(inode)->ip_blkno, name);
+	status = ocfs_blkno_stringify(OCFS2_I(inode)->ip_blkno, name);
 	if (status < 0) {
 		mlog_errno(status);
 		goto leave;
 	}
 
 	mlog(0, "removing '%s' from orphan dir %"MLFu64" (namelen=%d)\n",
-	     name, OCFS_I(orphan_dir_inode)->ip_blkno, OCFS2_ORPHAN_NAMELEN);
+	     name, OCFS2_I(orphan_dir_inode)->ip_blkno, OCFS2_ORPHAN_NAMELEN);
 
 	/* find it's spot in the orphan directory */
 	target_de_bh = ocfs_find_entry(name, OCFS2_ORPHAN_NAMELEN,

Modified: trunk/fs/ocfs2/ocfs.h
===================================================================
--- trunk/fs/ocfs2/ocfs.h	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/ocfs.h	2005-05-23 23:28:05 UTC (rev 2307)
@@ -192,81 +192,6 @@
 	wait_queue_head_t        l_event;
 } ocfs2_lock_res;
 
-/* OCFS2 Inode Private Data */
-typedef struct _ocfs_inode_private
-{
-	/* inode and feoff fields never change and are always safe to
-	 * read. */
-	struct inode     *ip_inode;
-
-	u64             ip_blkno;
-
-	ocfs2_lock_res  ip_meta_lockres;
-	ocfs2_lock_res  ip_data_lockres;
-
-	/* protects allocation changes on this inode. */
-	struct rw_semaphore  ip_alloc_sem;
-
-	/* These fields are protected by ip_lock */
-	spinlock_t	  ip_lock;
-	u32             ip_open_cnt;
-	u32		ip_clusters;
-	loff_t		ip_mmu_private;
-	struct ocfs2_extent_map ip_map;
-	struct list_head ip_io_markers;
-	int		ip_orphaned_slot;
-
-	struct semaphore  ip_io_sem;
-
-	/* Used by the journalling code to attach an inode to a
-	 * handle.  These are protected by ip_io_sem in order to lock
-	 * out other I/O to the inode until we either commit or
-	 * abort. */
-	struct list_head            ip_handle_list;
-	struct _ocfs_journal_handle *ip_handle;
-
-	atomic_t          ip_clean_buffer_seq;
-	u32             ip_flags; /* see below */
-
-	/* protected by recovery_lock. */
-	struct inode      *ip_next_orphan;
-
-	u32 		  ip_dir_start_lookup;
-
-	/* next two are protected by trans_inc_lock */
-	/* which transaction were we created on? Zero if none. */
-	unsigned long               ip_created_trans;
-	/* last transaction we were a part of. */
-	unsigned long               ip_last_trans;
-} ocfs_inode_private;
-
-/* 'flags' flags. */
-/* has this inode been deleted, either from this node or from another node. */
-#define OCFS_INODE_DELETED          0x00000001
-/* is this the journal inode? */
-#define OCFS_INODE_JOURNAL          0x00000002
-/* set on init_private, cleared on clear_inode */
-#define OCFS_INODE_INITIALIZED      0x00000004
-/* is this a system file? */
-#define OCFS_INODE_SYSTEM_FILE      0x00000008
-/* are we going to let another node deal with deletion of this inode? */
-#define OCFS_INODE_SKIP_DELETE      0x00000010
-#define OCFS_INODE_IN_REFRESH       0x00000020
-#define OCFS_INODE_BITMAP           0x00000040
-#define OCFS_INODE_OPEN_DIRECT      0x00000080
-
-#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))
-
-#define INODE_DELETED(i) (OCFS_I(i)->ip_flags & OCFS_INODE_DELETED)
-#define SET_INODE_DELETED(i) (OCFS_I(i)->ip_flags |= OCFS_INODE_DELETED)
-#define CLEAR_INODE_DELETED(i) (OCFS_I(i)->ip_flags &= (~OCFS_INODE_DELETED))
-
-#define INODE_JOURNAL(i) (OCFS_I(i)->ip_flags & OCFS_INODE_JOURNAL)
-#define SET_INODE_JOURNAL(i) (OCFS_I(i)->ip_flags |= OCFS_INODE_JOURNAL)
-#define CLEAR_INODE_JOURNAL(i) (OCFS_I(i)->ip_flags &= (~OCFS_INODE_JOURNAL))
-
 typedef enum _ocfs_vol_state
 {
 	VOLUME_INIT = 0,
@@ -359,7 +284,6 @@
 	atomic_t needs_checkpoint;
 	struct _ocfs_journal *journal;
 	atomic_t clean_buffer_seq;
-	spinlock_t clean_buffer_lock;
 
 	enum ocfs2_local_alloc_state local_alloc_state;
 	struct buffer_head *local_alloc_bh;

Modified: trunk/fs/ocfs2/ocfs2.h
===================================================================
--- trunk/fs/ocfs2/ocfs2.h	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/ocfs2.h	2005-05-23 23:28:05 UTC (rev 2307)
@@ -26,6 +26,7 @@
 #ifndef OCFS2_H
 #define OCFS2_H
 
+
 static inline u64 ocfs2_clusters_to_blocks(struct super_block *sb,
 					   u32 clusters)
 {
@@ -90,3 +91,4 @@
 #define ocfs2_test_bit ext2_test_bit
 #define ocfs2_find_next_zero_bit ext2_find_next_zero_bit
 #endif  /* OCFS2_H */
+

Modified: trunk/fs/ocfs2/proc.c
===================================================================
--- trunk/fs/ocfs2/proc.c	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/proc.c	2005-05-23 23:28:05 UTC (rev 2307)
@@ -38,6 +38,7 @@
 #include "proc.h"
 #include "alloc.h"
 #include "heartbeat.h"
+#include "inode.h"
 #include "journal.h"
 #include "ver.h"
 

Modified: trunk/fs/ocfs2/slot_map.c
===================================================================
--- trunk/fs/ocfs2/slot_map.c	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/slot_map.c	2005-05-23 23:28:05 UTC (rev 2307)
@@ -37,6 +37,7 @@
 #include "dlmglue.h"
 #include "extent_map.h"
 #include "heartbeat.h"
+#include "inode.h"
 #include "slot_map.h"
 #include "sysfile.h"
 

Modified: trunk/fs/ocfs2/suballoc.c
===================================================================
--- trunk/fs/ocfs2/suballoc.c	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/suballoc.c	2005-05-23 23:28:05 UTC (rev 2307)
@@ -37,6 +37,7 @@
 
 #include "alloc.h"
 #include "dlmglue.h"
+#include "inode.h"
 #include "journal.h"
 #include "localalloc.h"
 #include "suballoc.h"
@@ -167,7 +168,7 @@
 	bg->bg_bits = (u32) cl->cl_cpg * (u32) cl->cl_bpc;
 	bg->bg_chain = my_chain;
 	bg->bg_next_group = cl->cl_recs[my_chain].c_blkno;
-	bg->bg_parent_dinode = OCFS_I(alloc_inode)->ip_blkno;
+	bg->bg_parent_dinode = OCFS2_I(alloc_inode)->ip_blkno;
 	bg->bg_blkno = group_blkno;
 	/* set the 1st bit in the bitmap to account for the descriptor block */
 	ocfs2_set_bit(0, (unsigned long *) bg->bg_bitmap);
@@ -317,11 +318,11 @@
 		goto bail;
 	}
 
-	spin_lock(&OCFS_I(alloc_inode)->ip_lock);
-	OCFS_I(alloc_inode)->ip_clusters = fe->i_clusters;
+	spin_lock(&OCFS2_I(alloc_inode)->ip_lock);
+	OCFS2_I(alloc_inode)->ip_clusters = fe->i_clusters;
 	fe->i_size = ocfs2_clusters_to_bytes(alloc_inode->i_sb,
 					     fe->i_clusters);
-	spin_unlock(&OCFS_I(alloc_inode)->ip_lock);
+	spin_unlock(&OCFS2_I(alloc_inode)->ip_lock);
 	i_size_write(alloc_inode, fe->i_size);
 	alloc_inode->i_blocks =
 		ocfs2_align_bytes_to_sectors(i_size_read(alloc_inode));
@@ -923,7 +924,7 @@
 
 	chain = ac->ac_chain;
 	mlog(0, "trying to alloc %u bits from chain %u, inode %"MLFu64"\n",
-	     bits_wanted, chain, OCFS_I(alloc_inode)->ip_blkno);
+	     bits_wanted, chain, OCFS2_I(alloc_inode)->ip_blkno);
 
 	status = ocfs_read_block(OCFS2_SB(alloc_inode->i_sb),
 				 cl->cl_recs[chain].c_blkno, &group_bh,
@@ -1402,7 +1403,8 @@
 
 	mlog(0, "suballocator %"MLFu64": freeing %u bits from group %"MLFu64
 	        ", starting at %u\n",
-	     OCFS_I(alloc_inode)->ip_blkno, count, bg_blkno, start_bit);
+	     OCFS2_I(alloc_inode)->ip_blkno, count, bg_blkno,
+	     start_bit);
 
 	status = ocfs_read_block(osb, bg_blkno, &group_bh, OCFS_BH_CACHED, 
 				 alloc_inode);

Modified: trunk/fs/ocfs2/suballoc.h
===================================================================
--- trunk/fs/ocfs2/suballoc.h	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/suballoc.h	2005-05-23 23:28:05 UTC (rev 2307)
@@ -121,7 +121,7 @@
 static inline int ocfs2_is_cluster_bitmap(struct inode *inode)
 {
 	ocfs_super *osb = OCFS2_SB(inode->i_sb);
-	return osb->bitmap_blkno == OCFS_I(inode)->ip_blkno;
+	return osb->bitmap_blkno == OCFS2_I(inode)->ip_blkno;
 }
 
 /* This is for local alloc ONLY. Others should use the task-specific

Modified: trunk/fs/ocfs2/super.c
===================================================================
--- trunk/fs/ocfs2/super.c	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/super.c	2005-05-23 23:28:05 UTC (rev 2307)
@@ -73,8 +73,8 @@
 
 static u32 osb_id;             /* Keeps track of next available OSB Id */
 
-kmem_cache_t *ocfs2_inode_cache = NULL;
 kmem_cache_t *ocfs2_lock_cache = NULL;
+kmem_cache_t *ocfs2_inode_cachep = NULL;
 
 MODULE_AUTHOR("Oracle");
 MODULE_LICENSE("GPL");
@@ -101,17 +101,20 @@
 static int ocfs_initialize_osb(ocfs_super *osb, struct buffer_head *bh);
 static int ocfs2_get_sector(struct super_block *sb, struct buffer_head **bh, int block, int sect_size);
 static void ocfs_write_super(struct super_block *sb);
+static struct inode *ocfs2_alloc_inode(struct super_block *sb);
+static void ocfs2_destroy_inode(struct inode *inode);
 
 static unsigned long long ocfs2_max_file_offset(unsigned int blockshift);
 
 static struct super_operations ocfs_sops = {
-	.statfs = ocfs_statfs,
-	.clear_inode = ocfs_clear_inode,
-	.delete_inode =        ocfs_delete_inode, 
-	.sync_fs = ocfs2_sync_fs,
-	.write_super = ocfs_write_super,
-	.put_super = ocfs_put_super,
-
+	.statfs		= ocfs_statfs,
+	.alloc_inode	= ocfs2_alloc_inode,
+	.destroy_inode	= ocfs2_destroy_inode,
+	.clear_inode	= ocfs2_clear_inode,
+	.delete_inode	= ocfs_delete_inode, 
+	.sync_fs	= ocfs2_sync_fs,
+	.write_super	= ocfs_write_super,
+	.put_super	= ocfs_put_super,
 };
 
 struct dentry *ocfs_get_parent(struct dentry *child);
@@ -276,6 +279,23 @@
 	return status;
 } /* ocfs_release_system_inodes */
 
+/* We're allocating fs objects, use GFP_NOFS */
+static struct inode *ocfs2_alloc_inode(struct super_block *sb)
+{
+	struct ocfs2_inode_info *oi;
+
+	oi = kmem_cache_alloc(ocfs2_inode_cachep, SLAB_NOFS);
+	if (!oi)
+		return NULL;
+
+	return &oi->vfs_inode;
+}
+
+static void ocfs2_destroy_inode(struct inode *inode)
+{
+	kmem_cache_free(ocfs2_inode_cachep, OCFS2_I(inode));
+}
+
 /* From xfs_super.c:xfs_max_file_offset
  * Copyright (c) 2000-2004 Silicon Graphics, Inc.
  */
@@ -606,17 +626,49 @@
 	return status;
 }                               /* ocfs_statfs */
 
+static void ocfs2_inode_init_once(void *data, kmem_cache_t *cachep, unsigned long flags)
+{
+	struct ocfs2_inode_info *oi = data;
+
+	if ((flags & (SLAB_CTOR_VERIFY|SLAB_CTOR_CONSTRUCTOR)) ==
+	    SLAB_CTOR_CONSTRUCTOR) {
+		oi->ip_flags = 0;
+		atomic_set(&oi->ip_clean_buffer_seq, 0);
+		oi->ip_open_count = 0;
+		spin_lock_init(&oi->ip_lock);
+		ocfs2_extent_map_init(&oi->vfs_inode);
+		INIT_LIST_HEAD(&oi->ip_handle_list);
+		INIT_LIST_HEAD(&oi->ip_io_markers);
+		oi->ip_handle = NULL;
+		oi->ip_created_trans = 0;
+		oi->ip_last_trans = 0;
+		oi->ip_dir_start_lookup = 0;
+		
+		init_rwsem(&oi->ip_alloc_sem);
+		init_MUTEX(&(oi->ip_io_sem));
+
+		oi->ip_blkno = 0ULL;
+		oi->ip_clusters = 0;
+		oi->ip_mmu_private = 0LL;
+
+		ocfs2_lock_res_init_once(&oi->ip_meta_lockres);
+		ocfs2_lock_res_init_once(&oi->ip_meta_lockres);
+
+		inode_init_once(&oi->vfs_inode);
+	}
+}
+
 /*
  * ocfs_initialize_mem_caches()
  *
  */
 static int ocfs_initialize_mem_caches(void)
 {
-	ocfs2_inode_cache = kmem_cache_create("ocfs2_inode",
-					      sizeof(ocfs_inode_private), 0,
-					      SLAB_NO_REAP|SLAB_HWCACHE_ALIGN,
-					      NULL, NULL);
-	if (!ocfs2_inode_cache)
+	ocfs2_inode_cachep = kmem_cache_create("ocfs2_inode_cache",
+					       sizeof(struct ocfs2_inode_info),
+					       0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT,
+					       ocfs2_inode_init_once, NULL);
+	if (!ocfs2_inode_cachep)
 		return -ENOMEM;
 
 	ocfs2_lock_cache = kmem_cache_create("ocfs2_lock",
@@ -635,12 +687,12 @@
  */
 static void ocfs_free_mem_caches(void)
 {
-	if (ocfs2_inode_cache)
-		kmem_cache_destroy(ocfs2_inode_cache);
+	if (ocfs2_inode_cachep)
+		kmem_cache_destroy(ocfs2_inode_cachep);
 	if (ocfs2_lock_cache)
 		kmem_cache_destroy(ocfs2_lock_cache);
 
-	ocfs2_inode_cache = ocfs2_lock_cache = NULL;
+	ocfs2_inode_cachep = ocfs2_lock_cache = NULL;
 }				/* ocfs_free_mem_caches */
 
 static int ocfs2_sb_probe(struct super_block *sb,
@@ -1062,7 +1114,6 @@
 	init_waitqueue_head(&osb->checkpoint_event);
 	atomic_set(&osb->needs_checkpoint, 0);
 	atomic_set(&osb->clean_buffer_seq, 1);
-	spin_lock_init(&osb->clean_buffer_lock);
 
 	osb->node_num = OCFS_INVALID_NODE_NUM;
 	osb->slot_num = OCFS_INVALID_NODE_NUM;
@@ -1239,7 +1290,7 @@
 		goto bail;
 	}
 	
-	osb->bitmap_blkno = OCFS_I(inode)->ip_blkno;
+	osb->bitmap_blkno = OCFS2_I(inode)->ip_blkno;
 
 	status = ocfs_read_block(osb, osb->bitmap_blkno, &bitmap_bh, 0, inode);
 	iput(inode);

Modified: trunk/fs/ocfs2/symlink.c
===================================================================
--- trunk/fs/ocfs2/symlink.c	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/symlink.c	2005-05-23 23:28:05 UTC (rev 2307)
@@ -250,7 +250,7 @@
 	mlog_entry_void();
 
 	status = ocfs_read_block(OCFS2_SB(inode->i_sb),
-				 OCFS_I(inode)->ip_blkno,
+				 OCFS2_I(inode)->ip_blkno,
 				 bh,
 				 OCFS_BH_CACHED,
 				 inode);

Modified: trunk/fs/ocfs2/vote.c
===================================================================
--- trunk/fs/ocfs2/vote.c	2005-05-23 20:36:46 UTC (rev 2306)
+++ trunk/fs/ocfs2/vote.c	2005-05-23 23:28:05 UTC (rev 2307)
@@ -166,42 +166,43 @@
 	 * respond with BUSY he doesn't actually need the orphaned
 	 * slot, but it doesn't hurt to do it here anyway. */
 	if ((*orphaned_slot) != OCFS_INVALID_NODE_NUM) {
-		spin_lock(&OCFS_I(inode)->ip_lock);
+		spin_lock(&OCFS2_I(inode)->ip_lock);
 
-		mlog_bug_on_msg(OCFS_I(inode)->ip_orphaned_slot != 
+		mlog_bug_on_msg(OCFS2_I(inode)->ip_orphaned_slot != 
 				OCFS_INVALID_NODE_NUM && 
-				OCFS_I(inode)->ip_orphaned_slot != 
+				OCFS2_I(inode)->ip_orphaned_slot != 
 				(*orphaned_slot),
 				"Inode %"MLFu64": This node thinks it's "
 				"orphaned in slot %d, messaged it's in %d\n", 
-				OCFS_I(inode)->ip_blkno,
-				OCFS_I(inode)->ip_orphaned_slot,
+				OCFS2_I(inode)->ip_blkno,
+				OCFS2_I(inode)->ip_orphaned_slot,
 				*orphaned_slot);
 
 		mlog(0, "Setting orphaned slot for inode %"MLFu64" to %d\n",
-		     OCFS_I(inode)->ip_blkno, *orphaned_slot);
+		     OCFS2_I(inode)->ip_blkno, *orphaned_slot);
 
-		OCFS_I(inode)->ip_orphaned_slot = *orphaned_slot;
-		spin_unlock(&OCFS_I(inode)->ip_lock);
+		OCFS2_I(inode)->ip_orphaned_slot = *orphaned_slot;
+		spin_unlock(&OCFS2_I(inode)->ip_lock);
 	} else {
-		spin_lock(&OCFS_I(inode)->ip_lock);
+		spin_lock(&OCFS2_I(inode)->ip_lock);
 
 		mlog(0, "Sending back orphaned slot %d for inode %"MLFu64"\n",
-		     OCFS_I(inode)->ip_orphaned_slot,
-		     OCFS_I(inode)->ip_blkno);
+		     OCFS2_I(inode)->ip_orphaned_slot,
+		     OCFS2_I(inode)->ip_blkno);
 
-		*orphaned_slot = OCFS_I(inode)->ip_orphaned_slot;
-		spin_unlock(&OCFS_I(inode)->ip_lock);
+		*orphaned_slot = OCFS2_I(inode)->ip_orphaned_slot;
+		spin_unlock(&OCFS2_I(inode)->ip_lock);
 	}
 
-	spin_lock(&OCFS_I(inode)->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
 	/* vote no if the file is still open. */
-	if (OCFS_I(inode)->ip_open_cnt > 0) {
-		mlog(0, "open count = %u\n", OCFS_I(inode)->ip_open_cnt);
-		spin_unlock(&OCFS_I(inode)->ip_lock);
+	if (OCFS2_I(inode)->ip_open_count > 0) {
+		mlog(0, "open count = %u\n",
+		     OCFS2_I(inode)->ip_open_count);
+		spin_unlock(&OCFS2_I(inode)->ip_lock);
 		goto done;
 	}
-	spin_unlock(&OCFS_I(inode)->ip_lock);
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 	/* directories are a bit ugly... What if someone is sitting in
 	 * it? We want to make sure the inode is removed completely as
@@ -213,7 +214,7 @@
 
 	if (filemap_fdatawrite(inode->i_mapping)) {
 		mlog(ML_ERROR, "Could not sync inode %"MLFu64" for delete!\n",
-		     OCFS_I(inode)->ip_blkno);
+		     OCFS2_I(inode)->ip_blkno);
 		goto done;
 	}
 	sync_mapping_buffers(inode->i_mapping);
@@ -224,12 +225,12 @@
 	 * delete on our side. */
 	response = OCFS2_RESPONSE_OK;
 
-	spin_lock(&OCFS_I(inode)->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
 	SET_INODE_DELETED(inode);
 	/* We set the SKIP_DELETE flag on the inode so we don't try to
 	 * delete it in delete_inode ourselves. */
-	OCFS_I(inode)->ip_flags |=  OCFS_INODE_SKIP_DELETE;
-	spin_unlock(&OCFS_I(inode)->ip_lock);
+	OCFS2_I(inode)->ip_flags |=  OCFS2_INODE_SKIP_DELETE;
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 	d_prune_aliases (inode);
 
@@ -689,7 +690,7 @@
 		if (!ocfs_node_map_is_only(osb, &osb->mounted_map,
 					   osb->node_num))
 			status = ocfs2_do_request_vote(osb, 
-						       OCFS_I(inode)->ip_blkno,
+						       OCFS2_I(inode)->ip_blkno,
 						       inode->i_generation,
 						       type,
 						       orphaned_slot,
@@ -709,7 +710,7 @@
 	orphaned_slot = ntohl(resp->r_orphaned_slot);
 	node = ntohl(resp->r_hdr.h_node_num);
 	mlog(0, "node %d tells us that inode %"MLFu64" is orphaned in slot "
-	     "%d\n", node, OCFS_I(inode)->ip_blkno, orphaned_slot);
+	     "%d\n", node, OCFS2_I(inode)->ip_blkno, orphaned_slot);
 
 	/* The other node may not actually know which slot the inode
 	 * is orphaned in. */
@@ -720,16 +721,16 @@
 	 * orphaned in. We verify that the information is correct and
 	 * then record this in the inode. ocfs_delete_inode will use
 	 * this information to determine which lock to take. */
-	spin_lock(&OCFS_I(inode)->ip_lock);
-	mlog_bug_on_msg(OCFS_I(inode)->ip_orphaned_slot != orphaned_slot &&
-			OCFS_I(inode)->ip_orphaned_slot 
+	spin_lock(&OCFS2_I(inode)->ip_lock);
+	mlog_bug_on_msg(OCFS2_I(inode)->ip_orphaned_slot != orphaned_slot &&
+			OCFS2_I(inode)->ip_orphaned_slot 
 			!= OCFS_INVALID_NODE_NUM, "Inode %"MLFu64": Node %d "
 			"says it's orphaned in slot %d, we think it's in %d\n",
-			OCFS_I(inode)->ip_blkno, ntohl(resp->r_hdr.h_node_num),
-			orphaned_slot, OCFS_I(inode)->ip_orphaned_slot);
+			OCFS2_I(inode)->ip_blkno, ntohl(resp->r_hdr.h_node_num),
+			orphaned_slot, OCFS2_I(inode)->ip_orphaned_slot);
 
-	OCFS_I(inode)->ip_orphaned_slot = orphaned_slot;
-	spin_unlock(&OCFS_I(inode)->ip_lock);
+	OCFS2_I(inode)->ip_orphaned_slot = orphaned_slot;
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 }
 
 int ocfs2_request_delete_vote(struct inode *inode)
@@ -737,15 +738,15 @@
 	int orphaned_slot;
 	struct ocfs2_net_response_cb delete_cb;
 
-	spin_lock(&OCFS_I(inode)->ip_lock);
-	orphaned_slot = OCFS_I(inode)->ip_orphaned_slot;
-	spin_unlock(&OCFS_I(inode)->ip_lock);
+	spin_lock(&OCFS2_I(inode)->ip_lock);
+	orphaned_slot = OCFS2_I(inode)->ip_orphaned_slot;
+	spin_unlock(&OCFS2_I(inode)->ip_lock);
 
 	delete_cb.rc_cb = ocfs2_delete_response_cb;
 	delete_cb.rc_priv = inode;
 
 	mlog(0, "Inode %"MLFu64", we start thinking orphaned slot is %d\n",
-	     OCFS_I(inode)->ip_blkno, orphaned_slot);
+	     OCFS2_I(inode)->ip_blkno, orphaned_slot);
 
 	return ocfs2_request_vote(inode,
 				  OCFS2_VOTE_REQ_DELETE,



More information about the Ocfs2-commits mailing list