[Ocfs-commits] manish commits r8 - in trunk: . ocfs2/Common ocfs2/Common/inc ocfs2/Linux ocfs2/Linux/inc vendor/redhat

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Tue Sep 14 16:21:59 CDT 2004


Author: manish
Date: 2004-09-14 16:21:57 -0500 (Tue, 14 Sep 2004)
New Revision: 8

Modified:
   trunk/configure.in
   trunk/ocfs2/Common/inc/ocfscom.h
   trunk/ocfs2/Common/inc/ocfsdef.h
   trunk/ocfs2/Common/inc/ocfsdisk.h
   trunk/ocfs2/Common/inc/ocfsgencreate.h
   trunk/ocfs2/Common/inc/ocfsgendirnode.h
   trunk/ocfs2/Common/inc/ocfsgenmisc.h
   trunk/ocfs2/Common/ocfsgenalloc.c
   trunk/ocfs2/Common/ocfsgencreate.c
   trunk/ocfs2/Common/ocfsgendirnode.c
   trunk/ocfs2/Common/ocfsgendlm.c
   trunk/ocfs2/Common/ocfsgenmisc.c
   trunk/ocfs2/Linux/inc/ocfsiosup.h
   trunk/ocfs2/Linux/ocfsioctl.c
   trunk/ocfs2/Linux/ocfsiosup.c
   trunk/ocfs2/Linux/ocfsmain.c
   trunk/ocfs2/Linux/ocfsproc.c
   trunk/vendor/redhat/ocfs-2.4.18-e.spec.in
Log:
Sync


Modified: trunk/configure.in
===================================================================
--- trunk/configure.in	2004-06-18 21:45:58 UTC (rev 7)
+++ trunk/configure.in	2004-09-14 21:21:57 UTC (rev 8)
@@ -8,7 +8,7 @@
 # Adjust these for the software version.
 MAJOR_VERSION=1
 MINOR_VERSION=0
-MICRO_VERSION=12
+MICRO_VERSION=13
 EXTRA_VERSION=PROD1
 
 # Adjust this only to bump the RPM packaging version

Modified: trunk/ocfs2/Common/inc/ocfscom.h
===================================================================
--- trunk/ocfs2/Common/inc/ocfscom.h	2004-06-18 21:45:58 UTC (rev 7)
+++ trunk/ocfs2/Common/inc/ocfscom.h	2004-09-14 21:21:57 UTC (rev 8)
@@ -148,10 +148,6 @@
                                       i->u.generic_ip = (void *)o; \
                                   } while (0)
 
-#define FIRST_FILE_ENTRY(dir)   ((char *) ((char *)dir)+OCFS_SECTOR_SIZE)
-#define FILEENT(dir,idx)        (ocfs_file_entry *) ( ((char *)dir) + \
-                                ((dir->index[idx]+1) * OCFS_SECTOR_SIZE))
-
 #define IS_FE_DELETED(_flg)				\
 	(!(_flg) ||					\
 	 ((_flg) & OCFS_SYNC_FLAG_MARK_FOR_DELETION) ||	\

Modified: trunk/ocfs2/Common/inc/ocfsdef.h
===================================================================
--- trunk/ocfs2/Common/inc/ocfsdef.h	2004-06-18 21:45:58 UTC (rev 7)
+++ trunk/ocfs2/Common/inc/ocfsdef.h	2004-09-14 21:21:57 UTC (rev 8)
@@ -82,6 +82,39 @@
                 (k) = ((k) >= 1) ? ((k) - 1) : (k);                       \
               } while(0)
 
+enum {
+	BY_INDEX,
+	BY_OFFSET
+};
+
+/*
+ * FILEENT()
+ * index = true if idx is index value
+ * index = false if idx is offset
+ */
+static inline ocfs_file_entry * FILEENT (ocfs_directory *dir, __u8 idx, int mode)
+{
+	ocfs_dir_node *dirn = (ocfs_dir_node *)dir->d_page[0];
+	__u8 off = (mode == BY_INDEX) ? (dirn->index[idx] + 1) : idx + 1;
+	__u8 slot = off >> dir->d_entinbits;
+	__u8 inslot = off & dir->d_entmask;
+
+	OCFS_ASSERT (slot < dir->d_pagecnt);
+	OCFS_ASSERT (inslot < dir->d_entperpage);
+
+	return (ocfs_file_entry *) ((dir->d_page[slot]) + (inslot * OCFS_SECTOR_SIZE));
+}
+
+static inline unsigned int num_in_bits(unsigned int size)
+{
+	unsigned int bits = 0;
+	do {
+		bits++;
+		size >>= 1;
+	} while (size > 1);
+	return bits;
+}
+
 #ifdef LOCAL_ALLOC
 #define OCFS_FILE_NUM_TO_SYSFILE_TYPE(num)   ( (num >= 0 && num < OCFS_VOL_BITMAP_FILE + OCFS_MAXIMUM_NODES) ? \
                                                num/OCFS_MAXIMUM_NODES : OCFS_INVALID_SYSFILE )
@@ -419,7 +452,6 @@
 	kmem_cache_t *ofile_cache;
 	kmem_cache_t *fe_cache;
 	kmem_cache_t *lockres_cache;
-	kmem_cache_t *dirnode_cache;
 	__u32 flags;
 	__u32 pref_node_num;		/* preferred... osb has the real one */
 	ocfs_guid guid;			/* uniquely identifies a node */
@@ -434,6 +466,10 @@
 #ifdef OCFS_LINUX_MEM_DEBUG
         struct list_head item_list;
 #endif
+	__u32 g_pagecnt;		/* num of pages in dirnode */
+	__u32 g_entperpage;		/* num of fe's in a page */
+	__u32 g_entinbits;		/* in bits */
+	__u32 g_entmask;		/* in mask */
 	atomic_t cnt_lockres;		/* count of allocated lockres */
 	ocfs_dlm_stats net_reqst_stats;	/* stats of netdlm vote requests */
 	ocfs_dlm_stats net_reply_stats;	/* stats of netdlm vote reponses */

Modified: trunk/ocfs2/Common/inc/ocfsdisk.h
===================================================================
--- trunk/ocfs2/Common/inc/ocfsdisk.h	2004-06-18 21:45:58 UTC (rev 7)
+++ trunk/ocfs2/Common/inc/ocfsdisk.h	2004-09-14 21:21:57 UTC (rev 8)
@@ -156,6 +156,20 @@
 OCFS_GCC_ATTR_PACKALGN
 ocfs_dir_node;				// END CLASS
 
+/*
+ * Mallocing 128K (for dirnodes) in kernel space is problematic.
+ * So to handle r/w dirnodes, ocfs_directory has been created. It contains
+ * pointers to PAGE_SIZE blocks, enough to read an entire dirnode.
+ */
+typedef struct _ocfs_directory
+{
+	__u32 d_pagecnt;
+	__u32 d_entperpage;
+	__u32 d_entinbits;
+	__u32 d_entmask;
+	__u8 *d_page[OCFS_DEFAULT_DIR_NODE_SIZE / PAGE_SIZE];
+} ocfs_directory;
+
 typedef struct _ocfs_vol_node_map
 {
 	__u64 time[OCFS_MAXIMUM_NODES];

Modified: trunk/ocfs2/Common/inc/ocfsgencreate.h
===================================================================
--- trunk/ocfs2/Common/inc/ocfsgencreate.h	2004-06-18 21:45:58 UTC (rev 7)
+++ trunk/ocfs2/Common/inc/ocfsgencreate.h	2004-09-14 21:21:57 UTC (rev 8)
@@ -63,8 +63,8 @@
 		    ocfs_inode * oin,
 		    __u64 file_size, __u64 * file_off, struct iattr *attr);
 
-int ocfs_get_dirnode(ocfs_super *osb, ocfs_dir_node *lockn, __u64 lockn_off,
-		     ocfs_dir_node *dirn, bool *invalid_dirnode);
+int ocfs_get_directory(ocfs_super *osb, ocfs_dir_node *lockn, __u64 lockn_off,
+		       ocfs_directory *dir, bool *invalid_dirnode);
 
 int ocfs_create_directory (ocfs_super * osb, __u64 parent_off, ocfs_file_entry * fe);
 

Modified: trunk/ocfs2/Common/inc/ocfsgendirnode.h
===================================================================
--- trunk/ocfs2/Common/inc/ocfsgendirnode.h	2004-06-18 21:45:58 UTC (rev 7)
+++ trunk/ocfs2/Common/inc/ocfsgendirnode.h	2004-09-14 21:21:57 UTC (rev 8)
@@ -29,7 +29,7 @@
 
 void ocfs_print_file_entry (ocfs_file_entry * fe);
 
-void ocfs_print_dir_node (ocfs_super * osb, ocfs_dir_node * DirNode);
+void ocfs_print_directory (ocfs_super * osb, ocfs_directory * dir);
 
 int ocfs_alloc_node_block (ocfs_super * osb,
 		__u64 FileSize,
@@ -46,60 +46,39 @@
 int ocfs_recover_dir_node (ocfs_super * osb,
 		__u64 OrigDirNodeOffset, __u64 SavedDirNodeOffset);
 
-#define ocfs_read_dir_node(__osb, __dirn, __off)	\
-	ocfs_read_disk(__osb, __dirn, (__osb)->vol_layout.dir_node_size, __off)
+int ocfs_write_force_directory (ocfs_super * osb, ocfs_directory * dir, __s32 fe_ind);
 
-int ocfs_write_force_dir_node (ocfs_super * osb,
-		       ocfs_dir_node * DirNode, __s32 IndexFileEntry);
+int ocfs_write_directory (ocfs_super * osb, ocfs_directory * dir, __s32 fe_ind);
 
-int ocfs_write_dir_node (ocfs_super * osb,
-		  ocfs_dir_node * DirNode, __s32 IndexFileEntry);
+bool ocfs_walk_directory (ocfs_super * osb, ocfs_directory * dir,
+			  ocfs_file_entry * found_fe, ocfs_file * OFile);
 
-bool ocfs_walk_dir_node (ocfs_super * osb,
-	       ocfs_dir_node * DirNode,
-	       ocfs_file_entry * found_fe, ocfs_file * OFile);
+bool ocfs_search_directory (ocfs_super * osb, ocfs_directory * dir,
+			    struct qstr * SearchName, ocfs_file_entry * found_fe,
+			    ocfs_file * OFile);
 
-bool ocfs_search_dir_node (ocfs_super * osb,
-		 ocfs_dir_node * DirNode,
-		 struct qstr * SearchName,
-		 ocfs_file_entry * found_fe, ocfs_file * OFile);
+bool ocfs_find_index (ocfs_super * osb, ocfs_directory * dir,
+		      struct qstr * FileName, int *Index);
 
-bool ocfs_find_index (ocfs_super * osb,
-	   ocfs_dir_node * DirNode, struct qstr * FileName, int *Index);
+int ocfs_reindex_directory (ocfs_super * osb, __u64 diroff, ocfs_directory * dir);
 
-int ocfs_reindex_dir_node (ocfs_super * osb, __u64 DirNodeOffset, ocfs_dir_node * DirNode);
+int ocfs_insert_directory (ocfs_super * osb, ocfs_directory * dir,
+			   ocfs_file_entry * InsertEntry, ocfs_dir_node * LockNode,
+			   __s32 * IndexOffset);
 
-int ocfs_insert_dir_node (ocfs_super * osb,
-	       ocfs_dir_node * DirNode,
-	       ocfs_file_entry * InsertEntry,
-	       ocfs_dir_node * LockNode, __s32 * IndexOffset);
-
 int ocfs_del_file_entry (ocfs_super * osb,
 	      ocfs_file_entry * EntryToDel, ocfs_dir_node * LockNode);
 
-int ocfs_insert_file (ocfs_super * osb, ocfs_dir_node * DirNode,
+int ocfs_insert_file (ocfs_super * osb, ocfs_directory * dir,
 		      ocfs_file_entry * InsertEntry, ocfs_dir_node * LockNode,
 		      ocfs_lock_res * LockResource, bool invalid_dirnode);
 
-int ocfs_validate_dir_index (ocfs_super *osb, ocfs_dir_node *dirnode);
+int ocfs_validate_dir_index (ocfs_super *osb, ocfs_directory *dir);
 
-int ocfs_validate_num_del (ocfs_super *osb, ocfs_dir_node *dirnode);
+int ocfs_validate_num_del (ocfs_super *osb, ocfs_directory *dir);
 
-static inline int ocfs_validate_dirnode (ocfs_super *osb, ocfs_dir_node *dirn)
-{
-	int ret = 0;
+int ocfs_validate_directory (ocfs_super *osb, ocfs_directory *dir);
 
-	if (!IS_VALID_DIR_NODE (dirn))
-		ret = -EFAIL;
-
-	if (ret == 0)
-		ret = ocfs_validate_dir_index (osb, dirn);
-	if (ret == 0)
-		ret = ocfs_validate_num_del (osb, dirn);
-
-	return ret;
-}
-
 static inline void ocfs_update_hden (ocfs_dir_node *lockn, ocfs_dir_node *dirn,
 				     __u64 off)
 {

Modified: trunk/ocfs2/Common/inc/ocfsgenmisc.h
===================================================================
--- trunk/ocfs2/Common/inc/ocfsgenmisc.h	2004-06-18 21:45:58 UTC (rev 7)
+++ trunk/ocfs2/Common/inc/ocfsgenmisc.h	2004-09-14 21:21:57 UTC (rev 8)
@@ -57,6 +57,10 @@
 
 int ocfs_is_dir_empty (ocfs_super * osb, ocfs_dir_node * dirnode, bool * empty);
 
+ocfs_directory * ocfs_allocate_directory (void);
+
+void ocfs_release_directory (ocfs_directory *dir);
+
 /* sorry about all the macros, but file and line are important */
 
 #ifndef USERSPACE_TOOL
@@ -169,7 +173,7 @@
 #define ocfs_release_ofile(of)						\
 do {									\
 	if (of) {							\
-        	ocfs_release_dirnode ((of)->curr_dir_buf);		\
+        	ocfs_release_directory ((of)->curr_dir_buf);		\
         	ocfs_dbg_slab_free (OcfsGlobalCtxt.ofile_cache, (of));	\
 	}								\
 } while (0)
@@ -187,7 +191,7 @@
 #define ocfs_release_ofile(of)						\
 do {									\
 	if (of) {							\
-        	ocfs_release_dirnode ((of)->curr_dir_buf);		\
+        	ocfs_release_directory ((of)->curr_dir_buf);		\
 		kmem_cache_free (OcfsGlobalCtxt.ofile_cache, (of));	\
 	}								\
 } while (0)
@@ -249,41 +253,6 @@
         } \
 	oin; })) 
 #endif
-
-/* dirnode macros */
-#ifdef OCFS_MEM_DBG
-#define ocfs_allocate_dirnode()					\
-((ocfs_dir_node *)({						\
-	ocfs_dir_node *_dn = NULL;				\
-	_dn = ocfs_dbg_slab_alloc (OcfsGlobalCtxt.dirnode_cache, __FILE__, __LINE__); \
-	if (_dn)						\
-		memset (_dn, 0, OCFS_DEFAULT_DIR_NODE_SIZE);	\
-	_dn; }))
-
-#define ocfs_release_dirnode(_dn)				\
-	do {							\
-		if (_dn) {					\
-			ocfs_dbg_slab_free (OcfsGlobalCtxt.dirnode_cache, (_dn));\
-			(_dn) = NULL;				\
-		}						\
-	} while (0)
-#else  /* !OCFS_MEM_DBG */
-#define ocfs_allocate_dirnode()					\
-((ocfs_dir_node *)({						\
-	ocfs_dir_node *_dn = NULL;				\
-	_dn = kmem_cache_alloc (OcfsGlobalCtxt.dirnode_cache, GFP_NOFS);\
-	if (_dn)						\
-		memset (_dn, 0, OCFS_DEFAULT_DIR_NODE_SIZE);	\
-	_dn; }))
-
-#define ocfs_release_dirnode(_dn)				\
-	do {							\
-		if (_dn) {					\
-			kmem_cache_free (OcfsGlobalCtxt.dirnode_cache, (_dn));\
-			(_dn) = NULL;				\
-		}						\
-	} while (0)
-#endif
 #endif  /* !USERSPACE_TOOL */
 
 
@@ -350,17 +319,6 @@
 	if (x) \
 		ocfs_safefree(oin);  })
 
-/* dirnode macros */
-#define ocfs_allocate_dirnode()					\
-((ocfs_dir_node *)({						\
-	ocfs_dir_node *_dn = NULL;				\
-	_dn = (ocfs_dir_node *)ocfs_malloc(OCFS_DEFAULT_DIR_NODE_SIZE);\
-	if (_dn)						\
-		memset (_dn, 0, OCFS_DEFAULT_DIR_NODE_SIZE);	\
-	_dn; }))
-
-#define ocfs_release_dirnode(_dn)		ocfs_safefree(_dn)
-
 #endif  /* USERSPACE_TOOL */
 
 #endif				/* _OCFSGENMISC_H_ */

Modified: trunk/ocfs2/Common/ocfsgenalloc.c
===================================================================
--- trunk/ocfs2/Common/ocfsgenalloc.c	2004-06-18 21:45:58 UTC (rev 7)
+++ trunk/ocfs2/Common/ocfsgenalloc.c	2004-09-14 21:21:57 UTC (rev 8)
@@ -171,9 +171,8 @@
 			goto finally;
 		}
 
-		if (fileOffset == 0) {
-			LOG_ERROR_ARGS ("offset=0, file=%s", FileEntry->filename);
-		}
+		LOG_TRACE_ARGS ("offset=%u.%u, file=%s", HILO(fileOffset),
+				FileEntry->filename);
 
 		k = ExtentHeader->next_free_ext;
 		ExtentHeader->extents[k].file_off = FileEntry->alloc_size;
@@ -196,9 +195,8 @@
 			goto finally;
 		}
 
-		if (fileOffset == 0) {
-			LOG_ERROR_ARGS ("offset=0, file=%s", FileEntry->filename);
-		}
+		LOG_TRACE_ARGS ("offset=%u.%u, file=%s", HILO(fileOffset),
+				FileEntry->filename);
 
 		k = FileEntry->next_free_ext;
 		FileEntry->extents[k].file_off = FileEntry->alloc_size;

Modified: trunk/ocfs2/Common/ocfsgencreate.c
===================================================================
--- trunk/ocfs2/Common/ocfsgencreate.c	2004-06-18 21:45:58 UTC (rev 7)
+++ trunk/ocfs2/Common/ocfsgencreate.c	2004-09-14 21:21:57 UTC (rev 8)
@@ -577,7 +577,8 @@
 	return status;
 }				/* ocfs_create_oin_from_entry */
 
-/* ocfs_find_files_on_disk()
+/*
+ * ocfs_find_files_on_disk()
  *
  */
 int
@@ -587,7 +588,8 @@
 		 ocfs_file_entry * fe, ocfs_file * ofile)
 {
 	int status = -ENOENT;
-	ocfs_dir_node *pDirNode = NULL;
+	ocfs_dir_node *dirn = NULL;
+	ocfs_directory *dir = NULL;
 	__u64 thisDirNode, lockId;
 	int tmpstat;
 	bool bRet;
@@ -620,22 +622,24 @@
 
 	if ((ofile == NULL)
 	    || ((ofile != NULL) && (ofile->curr_dir_buf == NULL))) {
-		pDirNode = ocfs_allocate_dirnode();	
-		if (pDirNode == NULL) {
+		dir = ocfs_allocate_directory();	
+		if (dir == NULL) {
 			LOG_ERROR_STATUS (status = -ENOMEM);
 			goto leave;
 		}
 
 		if (ofile != NULL) {
-			ofile->curr_dir_buf = pDirNode;
+			ofile->curr_dir_buf = dir;
 		}
 	} else {
-		pDirNode = ofile->curr_dir_buf;
+		dir = ofile->curr_dir_buf;
 	}
 
+	dirn = (ocfs_dir_node *)dir->d_page[0];
+
 	if ((ofile != NULL) && (ofile->curr_dir_off > 0)) {
 		thisDirNode = ofile->curr_dir_off;
-		if (pDirNode->node_disk_off == thisDirNode) {
+		if (dirn->node_disk_off == thisDirNode) {
 			bReadDirNode = false;
 		}
 	} else {
@@ -643,9 +647,8 @@
 	}
 
 	if (bReadDirNode) {
-		status = ocfs_read_dir_node (osb, pDirNode, thisDirNode);
+		status = ocfs_read_directory (osb, dir, thisDirNode);
 		if (status < 0) {
-			/* Volume should be disabled in this case */
 			LOG_ERROR_STATUS (status);
 			goto leave;
 		}
@@ -657,36 +660,37 @@
 	/* directory for all files if it is not null, it means we want */
 	/* a particular file */
 	if (file_name == NULL) {
-		bRet = ocfs_walk_dir_node (osb, pDirNode, fe, ofile);
+		bRet = ocfs_walk_directory (osb, dir, fe, ofile);
 		if (bRet)
 			status = 0;
 	} else {
-		bRet = ocfs_search_dir_node (osb, pDirNode, file_name, fe, ofile);
+		bRet = ocfs_search_directory (osb, dir, file_name, fe, ofile);
 		if (bRet)
 			status = 0;
 	}
 
 	if (status >= 0 && (fe->attribs & OCFS_ATTRIB_FILE_CDSL)) {
-		/* Return the relevant CDSL for this node */
+#ifdef CDSL_ENABLED
 		ocfs_find_create_cdsl (osb, fe);
+#else
+		status = -EINVAL;
+#endif
 	}
 
-      leave:
+leave:
 	if (lock_acq) {
 		tmpstat = ocfs_release_lock (osb, lockId, OCFS_DLM_SHARED_LOCK,
 					     FLAG_DIR, lockres, dirfe);
 		if (tmpstat < 0) {
 			LOG_ERROR_STATUS (tmpstat);
-			/* Volume should be disabled in this case */
 		}
 	}
 
 	ocfs_release_file_entry(dirfe);
 	ocfs_put_lockres (lockres);
 
-	if (ofile == NULL && pDirNode) {
-		ocfs_release_dirnode (pDirNode);
-	}
+	if (ofile == NULL && dir)
+		ocfs_release_directory (dir);
 
 	LOG_EXIT_STATUS (status);
 	return status;
@@ -919,9 +923,6 @@
 		goto leave;
 	}
 
-	LOG_TRACE_ARGS ("sector=%u.%u, name=%s\n", HI (fe->this_sector),
-			LO (fe->this_sector), fe->filename);
-
 	/* Update the disk as the other node will not see this file directory */
 	if (DISK_LOCK_FILE_LOCK (pLockNode) < OCFS_DLM_ENABLE_CACHE_LOCK) {
 		status = ocfs_force_put_file_entry (osb, fe, true);
@@ -932,7 +933,7 @@
 	}
 
 	if (index < pLockNode->num_ent_used) {
-		status = ocfs_reindex_dir_node (osb, fe->dir_node_ptr, NULL);
+		status = ocfs_reindex_directory (osb, fe->dir_node_ptr, NULL);
 		if (status < 0) {
 			LOG_ERROR_STATUS (status);
 			goto leave;
@@ -1415,19 +1416,21 @@
 	return status;
 }				/* ocfs_change_file_size */
 
-/* ocfs_get_dirnode()
+/* ocfs_get_directory()
  *
  */
-int ocfs_get_dirnode(ocfs_super *osb, ocfs_dir_node *lockn, __u64 lockn_off,
-		     ocfs_dir_node *dirn, bool *invalid_dirnode)
+int ocfs_get_directory(ocfs_super *osb, ocfs_dir_node *lockn, __u64 lockn_off,
+		       ocfs_directory *dir, bool *invalid_dirnode)
 {
 	int status = 0;
 	__u64 node_off;
 	bool hden = false;
+	ocfs_dir_node *dirn = NULL;
 
 	LOG_ENTRY_ARGS ("(lockn_off=%u.%u)\n", HILO (lockn_off));
 
 	*invalid_dirnode = false;
+	dirn = (ocfs_dir_node *)dir->d_page[0];
 
 	if (lockn->head_del_ent_node != INVALID_NODE_POINTER) {
 		node_off = lockn->head_del_ent_node;
@@ -1439,13 +1442,13 @@
 			node_off = lockn->free_node_ptr;
 	}
 
-	status = ocfs_read_dir_node (osb, dirn, node_off);
+	status = ocfs_read_directory (osb, dir, node_off);
 	if (status < 0) {
 		LOG_ERROR_STATUS (status);
 		goto leave;
 	}
 
-	status = ocfs_validate_dirnode (osb, dirn);
+	status = ocfs_validate_directory (osb, dir);
 	if (status >= 0) {
 		if (dirn->node_disk_off != lockn->head_del_ent_node)
 			goto leave;
@@ -1465,13 +1468,13 @@
 	while (1) {
 		*invalid_dirnode = false;
 
-		status = ocfs_read_dir_node (osb, dirn, node_off);
+		status = ocfs_read_directory (osb, dir, node_off);
 		if (status < 0) {
 			LOG_ERROR_STATUS (status);
 			goto leave;
 		}
 
-		status = ocfs_validate_dirnode (osb, dirn);
+		status = ocfs_validate_directory (osb, dir);
 		if (status >= 0) {
 			if (dirn->num_ent_used < osb->max_dir_node_ent) {
 				if (hden)
@@ -1500,7 +1503,7 @@
 leave:
 	LOG_EXIT_STATUS (status);
 	return status;
-}				/* ocfs_get_dirnode */
+}				/* ocfs_get_directory */
 
 /* ocfs_create_directory()
  *
@@ -1509,10 +1512,11 @@
 {
 	int status = 0;
 	int tmpstat;
-	ocfs_file_entry *fileEntry = NULL;
-	ocfs_dir_node *PDirNode = NULL;
-	ocfs_dir_node *PNewDirNode = NULL;
+	ocfs_dir_node *dirn = NULL;
+	ocfs_dir_node *newdirn = NULL;
 	ocfs_dir_node *pLockNode = NULL;
+	ocfs_directory *dir = NULL;
+	ocfs_directory *newdir = NULL;
 	__u64 allocSize = 0;
 	__u64 bitmapOffset;
 	__u64 numClustersAlloc = 0;
@@ -1525,8 +1529,6 @@
 
 	LOG_ENTRY ();
 
-	fileEntry = fe;
-
 	pLockNode = (ocfs_dir_node *) ocfs_allocate_file_entry ();
 	if (pLockNode == NULL) {
 		LOG_ERROR_STATUS (status = -ENOMEM);
@@ -1562,69 +1564,62 @@
 	}
 
 	/* update the total allocation size here */
-	fileEntry->alloc_size = osb->vol_layout.dir_node_size;
-	fileEntry->extents[0].disk_off = bitmapOffset;
-	fileEntry->file_size = osb->vol_layout.dir_node_size;
-	fileEntry->next_del = INVALID_DIR_NODE_INDEX;
+	fe->alloc_size = osb->vol_layout.dir_node_size;
+	fe->extents[0].disk_off = bitmapOffset;
+	fe->file_size = osb->vol_layout.dir_node_size;
+	fe->next_del = INVALID_DIR_NODE_INDEX;
 
 	if (DISK_LOCK_FILE_LOCK (pLockNode) != OCFS_DLM_ENABLE_CACHE_LOCK)
-		DISK_LOCK_FILE_LOCK (fileEntry) = OCFS_DLM_NO_LOCK;
+		DISK_LOCK_FILE_LOCK (fe) = OCFS_DLM_NO_LOCK;
 
-	PDirNode = ocfs_allocate_dirnode();
-	if (PDirNode == NULL) {
+	dir = ocfs_allocate_directory();
+	if (dir == NULL) {
 		LOG_ERROR_STATUS (status = -ENOMEM);
 		goto leave;
 	}
 
-	PNewDirNode = PDirNode;
+	dirn = (ocfs_dir_node *)dir->d_page[0];
+	newdir = dir;
+	newdirn = dirn;
 
-	ocfs_initialize_dir_node (osb, PNewDirNode, bitmapOffset, fileOffset,
+	ocfs_initialize_dir_node (osb, newdirn, bitmapOffset, fileOffset,
 				  osb->node_num);
 
-	DISK_LOCK_CURRENT_MASTER (PNewDirNode) = osb->node_num;
-	DISK_LOCK_FILE_LOCK (PNewDirNode) = OCFS_DLM_ENABLE_CACHE_LOCK;
-	PNewDirNode->dir_node_flags |= DIR_NODE_FLAG_ROOT;
+	DISK_LOCK_CURRENT_MASTER (newdirn) = osb->node_num;
+	DISK_LOCK_FILE_LOCK (newdirn) = OCFS_DLM_ENABLE_CACHE_LOCK;
+	newdirn->dir_node_flags |= DIR_NODE_FLAG_ROOT;
 
-	status = ocfs_write_metadata (osb, PNewDirNode,
-				      osb->vol_layout.dir_node_size,
-				      PNewDirNode->node_disk_off);
+	status = ocfs_write_directory (osb, newdir, -1);
 	if (status < 0) {
 		LOG_ERROR_STATUS (status);
 		goto leave;
 	}
 
-	// do we need to keep this???
-	status = ocfs_write_dir_node (osb, PNewDirNode, -1);
-	if (status < 0) {
-		LOG_ERROR_STATUS (status);
-		goto leave;
-	}
-
 	if (pLockResource->lock_type != OCFS_DLM_ENABLE_CACHE_LOCK) {
-		status = ocfs_write_force_dir_node (osb, PNewDirNode, -1);
+		status = ocfs_write_force_directory (osb, newdir, -1);
 		if (status < 0) {
 			LOG_ERROR_STATUS (status);
 			goto leave;
 		}
 	}
 
-	status = ocfs_get_dirnode(osb, pLockNode, parent_off, PDirNode,
-				  &invalid_dirnode);
+	status = ocfs_get_directory (osb, pLockNode, parent_off, dir,
+				     &invalid_dirnode);
 	if (status < 0) {
 		LOG_ERROR_STATUS (status);
 		goto leave;
 	}
 
 	if (DISK_LOCK_FILE_LOCK (pLockNode) != OCFS_DLM_ENABLE_CACHE_LOCK)
-		DISK_LOCK_FILE_LOCK (fileEntry) = OCFS_DLM_NO_LOCK;
+		DISK_LOCK_FILE_LOCK (fe) = OCFS_DLM_NO_LOCK;
 
-	OcfsQuerySystemTime (&DISK_LOCK_LAST_WRITE (fileEntry));
-	OcfsQuerySystemTime (&DISK_LOCK_LAST_READ (fileEntry));
+	OcfsQuerySystemTime (&DISK_LOCK_LAST_WRITE (fe));
+	OcfsQuerySystemTime (&DISK_LOCK_LAST_READ (fe));
 
-	DISK_LOCK_WRITER_NODE (fileEntry) = osb->node_num;
-	DISK_LOCK_READER_NODE (fileEntry) = osb->node_num;
+	DISK_LOCK_WRITER_NODE (fe) = osb->node_num;
+	DISK_LOCK_READER_NODE (fe) = osb->node_num;
 
-	status = ocfs_insert_file (osb, PDirNode, fileEntry, pLockNode,
+	status = ocfs_insert_file (osb, dir, fe, pLockNode,
 				   pLockResource, invalid_dirnode);
 	if (status < 0) {
 		LOG_ERROR_STATUS (status);
@@ -1634,7 +1629,7 @@
 	/* lock was released on disk in last locknode write */
 	bAcquiredLock = false;
 
-      leave:
+leave:
 	if (bAcquiredLock) {
 		tmpstat = ocfs_release_lock (osb, lockId, OCFS_DLM_EXCLUSIVE_LOCK,
 					     lockFlags, pLockResource,
@@ -1642,7 +1637,7 @@
 		if (tmpstat < 0)
 			LOG_ERROR_STATUS (tmpstat);
 	}
-	ocfs_release_dirnode (PDirNode);
+	ocfs_release_directory (dir);
 	ocfs_release_file_entry ((ocfs_file_entry *) pLockNode);
 	ocfs_put_lockres (pLockResource);
 	LOG_EXIT_STATUS (status);
@@ -1657,7 +1652,7 @@
 	int status = 0;
 	int tmpstat;
 	ocfs_file_entry *fileEntry = NULL;
-	ocfs_dir_node *PDirNode = NULL;
+	ocfs_directory *dirblk = NULL;
 	ocfs_dir_node *pLockNode = NULL;
 	__u64 lockId = 0;
 	ocfs_lock_res *pLockResource = NULL;
@@ -1668,9 +1663,6 @@
 	LOG_ENTRY_ARGS ("(osb=0x%p, poff=%u.%u, fe=0x%p)\n", osb,
 		       	HILO(parent_off), fe);
 
-	/* Zero out the entry for the file and rewrite it back to the disk */
-	/* Also, the other nodes should update their cache bitmap for file */
-	/* ent to mark this one as free now. */
 	pLockNode = (ocfs_dir_node *) ocfs_allocate_file_entry ();
 	if (pLockNode == NULL) {
 		LOG_ERROR_STATUS (status = -ENOMEM);
@@ -1694,14 +1686,14 @@
 	/* Change the name and write it back... */
 	fileEntry = fe;
 
-	PDirNode = ocfs_allocate_dirnode();
-	if (PDirNode == NULL) {
+	dirblk = ocfs_allocate_directory();
+	if (dirblk == NULL) {
 		LOG_ERROR_STATUS (status = -ENOMEM);
 		goto leave;
 	}
 
-	status = ocfs_get_dirnode(osb, pLockNode, parent_off, PDirNode,
-				  &invalid_dirnode);
+	status = ocfs_get_directory (osb, pLockNode, parent_off, dirblk,
+				     &invalid_dirnode);
 	if (status < 0) {
 		LOG_ERROR_STATUS (status);
 		goto leave;
@@ -1715,7 +1707,7 @@
 
 	fileEntry->next_del = INVALID_DIR_NODE_INDEX;
 
-	status = ocfs_insert_file (osb, PDirNode, fileEntry, pLockNode,
+	status = ocfs_insert_file (osb, dirblk, fileEntry, pLockNode,
 				   pLockResource, invalid_dirnode);
 	if (status < 0) {
 		LOG_ERROR_STATUS (status);
@@ -1725,7 +1717,7 @@
 	/* lock was released on disk in last locknode write */
 	bAcquiredLock = false;
 
-      leave:
+leave:
 	if (bAcquiredLock) {
 		tmpstat = ocfs_release_lock (osb, lockId, OCFS_DLM_EXCLUSIVE_LOCK,
 					     lockFlags, pLockResource,
@@ -1733,7 +1725,7 @@
 		if (tmpstat < 0)
 			LOG_ERROR_STATUS (tmpstat);
 	}
-	ocfs_release_dirnode (PDirNode);
+	ocfs_release_directory (dirblk);
 	ocfs_release_file_entry ((ocfs_file_entry *) pLockNode);
 	ocfs_put_lockres (pLockResource);
 	LOG_EXIT_STATUS (status);
@@ -1880,7 +1872,7 @@
 			    goto leave;
 		    }
 		    break;
-
+#ifdef CDSL_ENABLED
 	    case FLAG_FILE_DELETE_CDSL:
 		    status = ocfs_delete_cdsl (osb, parent_off, fe);
 		    if (status < 0) {
@@ -1907,7 +1899,7 @@
 			    goto leave;
 		    }
 		    break;
-
+#endif  /* CDSL_ENABLED */
 	    case FLAG_FILE_TRUNCATE:
 		    status = ocfs_truncate_file (osb, *file_off, file_size, oin);
 		    if (status < 0) {
@@ -1994,7 +1986,7 @@
 	return status;
 }				/* ocfs_initialize_oin */
 
-
+#ifdef CDSL_ENABLED
 /*
  * ocfs_create_delete_cdsl()
  *
@@ -2277,6 +2269,7 @@
 	LOG_EXIT_STATUS (status);
 	return (status);
 }  /* ocfs_find_create_cdsl */
+#endif				/* CDSL_ENABLED */
 
 
 #ifdef UNUSED_CODE
@@ -2398,8 +2391,7 @@
 }				/* ocfs_check_lock_state */
 #endif /* UNUSED_CODE */
 
-
-
+#ifdef CDSL_ENABLED
 /*
  * ocfs_delete_cdsl()
  *
@@ -2806,8 +2798,8 @@
 	LOG_EXIT_STATUS (status);
 	return status;
 }  /* ocfs_create_cdsl */
+#endif			/* CDSL_ENABLED */
 
-
 /*
  * ocfs_truncate_file()
  *

Modified: trunk/ocfs2/Common/ocfsgendirnode.c
===================================================================
--- trunk/ocfs2/Common/ocfsgendirnode.c	2004-06-18 21:45:58 UTC (rev 7)
+++ trunk/ocfs2/Common/ocfsgendirnode.c	2004-09-14 21:21:57 UTC (rev 8)
@@ -35,38 +35,27 @@
 #define OCFS_DEBUG_CONTEXT   OCFS_DEBUG_CONTEXT_DIRINFO
 
 /*
- * ocfs_print_file_entry()
+ * ocfs_print_directory()
  *
  */
-void ocfs_print_file_entry (ocfs_file_entry * fe)
+void ocfs_print_directory (ocfs_super * osb, ocfs_directory * dir)
 {
-	LOG_TRACE_ARGS ("This fe has name %s\n", fe->filename);
-}				/* ocfs_print_file_entry */
-
-/*
- * ocfs_print_dir_node()
- *
- */
-void ocfs_print_dir_node (ocfs_super * osb, ocfs_dir_node * DirNode)
-{
 	int i;
-	ocfs_file_entry *pOrigFileEntry;
+	ocfs_file_entry *fe;
+	ocfs_dir_node *dirn;
 
-	if (DirNode->dir_node_flags & DIR_NODE_FLAG_ROOT)
-		LOG_TRACE_STR ("First dirnode of the dir");
+	dirn = (ocfs_dir_node *)dir->d_page[0];
 
-	LOG_TRACE_ARGS ("signature: %s\n", DirNode->signature);
+	LOG_TRACE_ARGS ("sig=%s, ndo=%u.%u, ent=%u%s\n", dirn->signature,
+			HILO (dirn->node_disk_off), dirn->num_ent_used,
+			((dirn->dir_node_flags & DIR_NODE_FLAG_ROOT) ?
+			 ", rootnode" : " "));
 
-	LOG_TRACE_ARGS ("node_disk_off: %u.%u\n", HILO (DirNode->node_disk_off));
-
-	LOG_TRACE_ARGS ("num_ents: %u, num_ent_used: %u\n", DirNode->num_ents,
-		DirNode->num_ent_used);
-
-	for (i = 0; i < DirNode->num_ent_used; i++) {
-		pOrigFileEntry = FILEENT (DirNode, i);
-		LOG_TRACE_ARGS ("filename: %s\n", pOrigFileEntry->filename);
+	for (i = 0; i < dirn->num_ent_used; i++) {
+		fe = FILEENT (dir, i, BY_INDEX);
+		LOG_TRACE_ARGS ("name=%s\n", fe->filename);
 	}
-}				/* ocfs_print_dir_node */
+}				/* ocfs_print_directory */
 
 /*
  * ocfs_alloc_node_block()
@@ -755,46 +744,47 @@
 #endif
 
 /*
- * ocfs_write_force_dir_node()
+ * ocfs_write_force_directory()
  *
  */
-int ocfs_write_force_dir_node (ocfs_super * osb,
-		       ocfs_dir_node * DirNode, __s32 IndexFileEntry)
+int ocfs_write_force_directory (ocfs_super * osb, ocfs_directory * dir,
+				__s32 fe_ind)
 {
 	int status = 0;
+	ocfs_dir_node *dirn = NULL;
+	__u8 *buf = NULL;
+	__u64 offset = 0;
 
 	LOG_ENTRY ();
 
-	if (IndexFileEntry != -1) {
-		/* Read in the Dir Node from the disk into the buffer supplied */
-		status = ocfs_write_disk (osb,
-					(__u8 *) (((__u8 *) DirNode) +
-						 ((IndexFileEntry +
-						   1) * osb->sect_size)),
-					osb->sect_size,
-					DirNode->node_disk_off +
-					((IndexFileEntry +
-					  1) * osb->sect_size));
+	dirn = (ocfs_dir_node *)dir->d_page[0];
+
+	if (fe_ind != -1) {
+		buf = (__u8 *) FILEENT (dir, fe_ind, BY_OFFSET);
+		offset  = dirn->node_disk_off +
+			  ((fe_ind + 1) * osb->sect_size);
+
+		status = ocfs_write_disk (osb, buf, osb->sect_size, offset);
 		if (status < 0) {
 			LOG_ERROR_STATUS (status);
+			goto bail;
 		}
 	}
 
-	/* Write the first sector last */
-	status = ocfs_write_disk (osb, DirNode, osb->sect_size,
-				  DirNode->node_disk_off);
+	status = ocfs_write_disk (osb, dirn, osb->sect_size,
+				  dirn->node_disk_off);
 	if (status < 0)
 		LOG_ERROR_STATUS (status);
-
+bail:
 	LOG_EXIT_STATUS (status);
 	return status;
-}				/* ocfs_write_force_dir_node */
+}				/* ocfs_write_force_directory */
 
 /*
- * ocfs_write_dir_node()
+ * ocfs_write_directory()
  *
  */
-int ocfs_write_dir_node (ocfs_super * osb, ocfs_dir_node * DirNode, __s32 IndexFileEntry)
+int ocfs_write_directory (ocfs_super * osb, ocfs_directory * dir, __s32 fe_ind)
 {
 	int status = 0;
 	__u64 offset;
@@ -802,26 +792,24 @@
 	__u8 *buffer;
 	bool bCacheWrite = false;
 	bool bFileCacheWrite = false;
+	ocfs_dir_node *dirn = NULL;
+	ocfs_file_entry *fe = NULL;
 
 	LOG_ENTRY ();
 
-	if ((DISK_LOCK_CURRENT_MASTER (DirNode) == osb->node_num) &&
-	    (DISK_LOCK_FILE_LOCK (DirNode) == OCFS_DLM_ENABLE_CACHE_LOCK)) {
+	dirn = (ocfs_dir_node *)dir->d_page[0];
+	if ((DISK_LOCK_CURRENT_MASTER (dirn) == osb->node_num) &&
+	    (DISK_LOCK_FILE_LOCK (dirn) == OCFS_DLM_ENABLE_CACHE_LOCK)) {
 		bCacheWrite = true;
 	}
 
-	if (IndexFileEntry != -1) {
-		ocfs_file_entry *fe = NULL;
-
-		/* Read in the Dir Node from the disk into the buffer supplied */
-
-		offset = DirNode->node_disk_off +
-		    ((IndexFileEntry + 1) * osb->sect_size);
+	if (fe_ind != -1) {
+		offset = dirn->node_disk_off + ((fe_ind + 1) * osb->sect_size);
 		size = (__u32) osb->sect_size;
-		buffer = (__u8 *) (((__u8 *) DirNode) +
-				  ((IndexFileEntry + 1) * osb->sect_size));
-		fe = (ocfs_file_entry *) buffer;
 
+		fe = FILEENT (dir, fe_ind, BY_OFFSET);
+		buffer = (__u8 *)fe;
+
 		if ((DISK_LOCK_CURRENT_MASTER (fe) == osb->node_num) &&
 		    (DISK_LOCK_FILE_LOCK (fe) == OCFS_DLM_ENABLE_CACHE_LOCK)) {
 			bFileCacheWrite = true;
@@ -832,60 +820,56 @@
 			status = ocfs_write_metadata (osb, buffer, size, offset);
 			if (status < 0) {
 				LOG_ERROR_STATUS (status);
+				goto bail;
 			}
-#if 0
-			if (!bCacheWrite) {
-				status =
-				    ocfs_write_disk (osb, buffer, size, offset);
-				if (status < 0) {
-					LOG_ERROR_STATUS (status);
-				}
-			}
-#endif
 		} else {
 			status = ocfs_write_disk (osb, buffer, size, offset);
 			if (status < 0) {
 				LOG_ERROR_STATUS (status);
+				goto bail;
 			}
 		}
 	}
 
 	/* Write the first sector last */
-	offset = DirNode->node_disk_off;
+	offset = dirn->node_disk_off;
 	size = (__u32) OCFS_SECTOR_SIZE;
 
 	/* Write the dir node */
 	if (bCacheWrite) {
-		status = ocfs_write_metadata (osb, DirNode, size, offset);
+		status = ocfs_write_metadata (osb, dirn, size, offset);
 		if (status < 0) {
 			LOG_ERROR_STATUS (status);
+			goto bail;
 		}
 	} else {
-		status = ocfs_write_disk (osb, DirNode, size, offset);
+		status = ocfs_write_disk (osb, dirn, size, offset);
 		if (status < 0) {
 			LOG_ERROR_STATUS (status);
+			goto bail;
 		}
 	}
 
-	IF_TRACE (ocfs_print_dir_node (osb, DirNode));
-
+	IF_TRACE (ocfs_print_directory (osb, dir));
+bail:
 	LOG_EXIT_STATUS (status);
 	return status;
-}				/* ocfs_write_dir_node */
+}				/* ocfs_write_directory */
 
 
 /*
- * ocfs_walk_dir_node()
+ * ocfs_walk_directory()
  *
  */
-bool ocfs_walk_dir_node (ocfs_super * osb, ocfs_dir_node * DirNode,
-			 ocfs_file_entry * found_fe, ocfs_file * OFile)
+bool ocfs_walk_directory (ocfs_super * osb, ocfs_directory * dir,
+			  ocfs_file_entry * found_fe, ocfs_file * OFile)
 {
 	__u32 start;
 	__u32 i;
 	ocfs_file_entry *fe;
 	int status;
 	bool bRet = false;
+	ocfs_dir_node *dirn = NULL;
 
 	LOG_ENTRY ();
 
@@ -894,15 +878,16 @@
 	else
 		start = 0;
 
-	if (!IS_VALID_DIR_NODE (DirNode)) {
+	dirn = (ocfs_dir_node *)dir->d_page[0];
+	if (!IS_VALID_DIR_NODE (dirn)) {
 		bRet = false;
 		goto bail;
 	}
 
 	while (1) {
 		/* Iterate thru this dirnode and find a matching entry */
-		for (i = start; i < DirNode->num_ent_used; i++) {
-			fe = FILEENT (DirNode, i);
+		for (i = start; i < dirn->num_ent_used; i++) {
+			fe = FILEENT (dir, i, BY_INDEX);
 
 			if (IS_FE_DELETED(fe->sync_flags) ||
 			    (!(fe->sync_flags & OCFS_SYNC_FLAG_VALID))) {
@@ -910,37 +895,32 @@
 			}
 
 			/* Check to see if the name satisfies pattern */
-			{
-				if ((OFile == NULL)
-				    && (fe->attribs & OCFS_ATTRIB_DIRECTORY)) {
-					continue;
-				}
+			if ((OFile == NULL) &&
+			    (fe->attribs & OCFS_ATTRIB_DIRECTORY))
+				continue;
 
-				status = 0;
-				memcpy ((void *) found_fe, (void *) fe,
-					OCFS_SECTOR_SIZE);
+			status = 0;
+			memcpy ((void *) found_fe, (void *) fe, OCFS_SECTOR_SIZE);
 
-				LOG_TRACE_ARGS
-				    ("Returning entry: %u, name: %s\n", i,
-				     fe->filename);
+			LOG_TRACE_ARGS ("Returning entry: %u, name: %s\n", i, fe->filename);
 
-				if (OFile != NULL) {
-					OFile->curr_dir_off =
-					    DirNode->node_disk_off;
-					OFile->curr_byte_off = i + 1;
-				}
+			if (OFile != NULL) {
+				OFile->curr_dir_off = dirn->node_disk_off;
+				OFile->curr_byte_off = i + 1;
+			}
 
-				bRet = true;
+			bRet = true;
+			goto bail;
+		}
+
+		if (dirn->next_node_ptr != -1) {
+			status = ocfs_read_directory (osb, dir, dirn->next_node_ptr);
+			if (status < 0) {
+				LOG_ERROR_STATUS (status);
 				goto bail;
 			}
-		}
 
-		if (DirNode->next_node_ptr != -1) {
-			status =
-			    ocfs_read_dir_node (osb, DirNode,
-					     DirNode->next_node_ptr);
-
-			if (!IS_VALID_DIR_NODE (DirNode)) {
+			if (!IS_VALID_DIR_NODE (dirn)) {
 				bRet = false;
 				goto bail;
 			}
@@ -953,31 +933,34 @@
 	}
 
 	if (OFile != NULL) {
-		OFile->curr_dir_off = DirNode->node_disk_off;
+		OFile->curr_dir_off = dirn->node_disk_off;
 		OFile->curr_byte_off = i + 1;
 	}
 
-      bail:
+bail:
 	LOG_EXIT_ULONG (bRet);
 	return bRet;
-}				/* ocfs_walk_dir_node */
+}				/* ocfs_walk_directory */
 
 /*
  * ocfs_search_dir_node()
  *
  */
-bool ocfs_search_dir_node (ocfs_super * osb, ocfs_dir_node * DirNode,
-			   struct qstr * SearchName, ocfs_file_entry * found_fe,
-			   ocfs_file * OFile)
+bool ocfs_search_directory (ocfs_super * osb, ocfs_directory * dir,
+			    struct qstr * SearchName, ocfs_file_entry * found_fe,
+			    ocfs_file * OFile)
 {
 	__u32 start;
 	__u32 index;
 	ocfs_file_entry *fe;
 	int status;
 	bool bRet = false;
+	ocfs_dir_node *dirn = NULL;
 
 	LOG_ENTRY ();
 
+	dirn = (ocfs_dir_node *)dir->d_page[0];
+
 	if (OFile != NULL)
 		start = OFile->curr_byte_off;
 	else
@@ -987,15 +970,14 @@
 
 	while (1) {
 		/* Iterate thru this dirnode and find a matching entry */
-		if (index < DirNode->num_ent_used) {
-			if (ocfs_find_index (osb, DirNode, SearchName, (int *) &index)) {
-				fe = FILEENT (DirNode, index);
+		if (index < dirn->num_ent_used) {
+			if (ocfs_find_index (osb, dir, SearchName, (int *) &index)) {
+				fe = FILEENT (dir, index, BY_INDEX);
 
 				memcpy ((void *) found_fe, (void *) fe,
 					OCFS_SECTOR_SIZE);
 				if (OFile != NULL) {
-					OFile->curr_dir_off =
-					    DirNode->node_disk_off;
+					OFile->curr_dir_off = dirn->node_disk_off;
 					OFile->curr_byte_off = index + 1;
 				}
 				bRet = true;
@@ -1003,12 +985,14 @@
 			}
 		}
 
-		if (DirNode->next_node_ptr != -1) {
-			status =
-			    ocfs_read_dir_node (osb, DirNode,
-					     DirNode->next_node_ptr);
+		if (dirn->next_node_ptr != -1) {
+			status = ocfs_read_directory (osb, dir, dirn->next_node_ptr);
+			if (status < 0) {
+				LOG_ERROR_STATUS (status);
+				goto bail;
+			}
 
-			if (!IS_VALID_DIR_NODE (DirNode)) {
+			if (!IS_VALID_DIR_NODE (dirn)) {
 				bRet = false;
 				goto bail;
 			}
@@ -1022,31 +1006,34 @@
 	}
 
 	if (OFile != NULL) {
-		OFile->curr_dir_off = DirNode->node_disk_off;
+		OFile->curr_dir_off = dirn->node_disk_off;
 		OFile->curr_byte_off = index + 1;
 	}
 
-      bail:
+bail:
 	LOG_EXIT_ULONG (bRet);
 	return bRet;
-}				/* ocfs_search_dir_node */
+}				/* ocfs_search_directory */
 
 
 /*
  * ocfs_find_index()
  *
  */
-bool ocfs_find_index (ocfs_super * osb, ocfs_dir_node * DirNode,
-		      struct qstr * FileName, int *Index)
+bool ocfs_find_index (ocfs_super * osb, ocfs_directory * dir,
+		      struct qstr * FileName, int * Index)
 {
 	int lowBnd, upBnd;
 	ocfs_file_entry *fe;
 	int res = -1, index = 0, start = 0;
 	int ret = false;
         struct qstr q;
+	ocfs_dir_node *dirn = NULL;
 
 	LOG_ENTRY ();
-	if (!IS_VALID_DIR_NODE (DirNode) || FileName==NULL) {
+
+	dirn = (ocfs_dir_node *)dir->d_page[0];
+	if (!IS_VALID_DIR_NODE (dirn) || FileName==NULL) {
 		ret = false;
 		goto bail;
 	}
@@ -1054,9 +1041,9 @@
 	if (*Index > 0)
 		start = *Index;
 
-	if (DirNode->index_dirty) {
-		for (index = start; index < DirNode->num_ent_used; index++) {
-			fe = FILEENT (DirNode, index);
+	if (dirn->index_dirty) {
+		for (index = start; index < dirn->num_ent_used; index++) {
+			fe = FILEENT (dir, index, BY_INDEX);
 			if (IS_FE_DELETED(fe->sync_flags) ||
 			    (!(fe->sync_flags & OCFS_SYNC_FLAG_VALID))) {
 				continue;
@@ -1075,16 +1062,16 @@
 		goto bail;
 	}
 
-	for (lowBnd = start, upBnd = (DirNode->num_ent_used - start); upBnd;
+	for (lowBnd = start, upBnd = (dirn->num_ent_used - start); upBnd;
 	     upBnd >>= 1) {
 		index = lowBnd + (upBnd >> 1);
 
-		fe = FILEENT (DirNode, index);
+		fe = FILEENT (dir, index, BY_INDEX);
 
 		if (IS_FE_DELETED(fe->sync_flags) ||
 		    (!(fe->sync_flags & OCFS_SYNC_FLAG_VALID))) {
 			for (index = lowBnd; index < (lowBnd + upBnd); index++) {
-				fe = FILEENT (DirNode, index);
+				fe = FILEENT (dir, index, BY_INDEX);
 				if (IS_FE_DELETED(fe->sync_flags) ||
 				    (!(fe->sync_flags & OCFS_SYNC_FLAG_VALID))) {
 					continue;
@@ -1132,89 +1119,89 @@
 }				/* ocfs_find_index */
 
 /*
- * ocfs_reindex_dir_node()
+ * ocfs_reindex_directory()
  *
  */
-int ocfs_reindex_dir_node (ocfs_super * osb, __u64 DirNodeOffset, ocfs_dir_node * DirNode)
+int ocfs_reindex_directory (ocfs_super * osb, __u64 diroff, ocfs_directory * dir)
 {
 	int status = 0;
-	ocfs_dir_node *pDirNode = NULL;
-	ocfs_file_entry *pInsertEntry;
+	ocfs_file_entry *newfe;
 	ocfs_file_entry *fe;
 	__u32 index;
-	__u8 offset = 0;
+	__u8 slot = 0;
 	int res;
+	ocfs_dir_node *dirn = NULL;
+	ocfs_directory *dirblk = NULL;
 
 	LOG_ENTRY ();
 
-	if (DirNode == NULL) {
-		pDirNode = ocfs_allocate_dirnode();
-		if (pDirNode == NULL) {
+	if (dir == NULL) {
+		dirblk = ocfs_allocate_directory();
+		if (dirblk == NULL) {
 			LOG_ERROR_STATUS (status = -ENOMEM);
 			goto leave;
 		}
 
-		status = ocfs_read_dir_node (osb, pDirNode, DirNodeOffset);
+		status = ocfs_read_directory (osb, dirblk, diroff);
 		if (status < 0) {
 			LOG_ERROR_STATUS (status);
 			goto leave;
 		}
 	} else {
-		pDirNode = DirNode;
+		dirblk = dir;
 	}
 
-	if (pDirNode->index_dirty) {
-		offset = pDirNode->bad_off;
-		pInsertEntry =
-		    (ocfs_file_entry *) (FIRST_FILE_ENTRY (pDirNode) +
-					 (offset * OCFS_SECTOR_SIZE));
+	dirn = (ocfs_dir_node *)dirblk->d_page[0];
 
-		for (index = 0; index < pDirNode->num_ent_used; index++) {
-			fe = FILEENT (pDirNode, index);
+	if (dirn->index_dirty) {
+		slot = dirn->bad_off;
+		newfe = FILEENT (dirblk, slot, BY_OFFSET);
 
+		for (index = 0; index < dirn->num_ent_used; index++) {
+			fe = FILEENT (dirblk, index, BY_INDEX);
+
 			if (IS_FE_DELETED(fe->sync_flags) ||
 			    (!(fe->sync_flags & OCFS_SYNC_FLAG_VALID))) {
 				continue;
 			}
 
-			res = strcmp (fe->filename, pInsertEntry->filename);
+			res = strcmp (fe->filename, newfe->filename);
 			if (res < 0) {
 				break;
 			}
 		}
 
-		if (index < (pDirNode->num_ent_used - 1)) {
-			memmove (&pDirNode->index[index + 1],
-				 &pDirNode->index[index],
-				 pDirNode->num_ent_used - index);
-			pDirNode->index[index] = offset;
+		if (index < (dirn->num_ent_used - 1)) {
+			memmove (&dirn->index[index + 1],
+				 &dirn->index[index],
+				 dirn->num_ent_used - index);
+			dirn->index[index] = slot;
 		}
 
-		pDirNode->index_dirty = 0;
+		dirn->index_dirty = 0;
 
-		status = ocfs_write_dir_node (osb, pDirNode, -1);
+		status = ocfs_write_directory (osb, dirblk, -1);
 		if (status < 0) {
 			LOG_ERROR_STATUS (status);
 			goto leave;
 		}
 
 	}
-      leave:
-	if (DirNode == NULL)
-		ocfs_release_dirnode (pDirNode);
+leave:
+	if (!dir)
+		ocfs_release_directory (dirblk);
 
 	LOG_EXIT_STATUS (status);
 	return status;
-}				/* ocfs_reindex_dir_node */
+}				/* ocfs_reindex_directory */
 
 /*
- * ocfs_insert_dir_node()
+ * ocfs_insert_directory()
  *
  */
-int ocfs_insert_dir_node (ocfs_super * osb,
-	       ocfs_dir_node * DirNode,
-	       ocfs_file_entry * InsertEntry,
-	       ocfs_dir_node * LockNode, __s32 * IndexOffset)
+int ocfs_insert_directory (ocfs_super * osb, ocfs_directory * dir,
+			   ocfs_file_entry * newfe, ocfs_dir_node * LockNode,
+			   __s32 * IndexOffset)
 {
 	int status = 0;
 	ocfs_file_entry *fe;
@@ -1225,36 +1212,38 @@
 	__u32 size;
 	__u8 freeOffset;
         struct qstr q;
+	ocfs_dir_node *dirn = NULL;
 
 	LOG_ENTRY ();
 
-	if (!IS_VALID_DIR_NODE (DirNode)) {
+	dirn = (ocfs_dir_node *)dir->d_page[0];
+	if (!IS_VALID_DIR_NODE (dirn)) {
 		LOG_ERROR_STATUS(status = -EINVAL);
 		goto bail;
 	}
 
-	if (DirNode->index_dirty) {
-		status = ocfs_reindex_dir_node (osb, DirNode->node_disk_off, DirNode);
+	if (dirn->index_dirty) {
+		status = ocfs_reindex_directory (osb, dirn->node_disk_off, dir);
 		if (status < 0) {
 			LOG_ERROR_STATUS (status);
 			goto bail;
 		}
 	}
 
-	if (DirNode->num_ent_used < osb->max_dir_node_ent) {
-		if (DirNode->num_ent_used) {
-                        q.name = InsertEntry->filename;
-                        q.len = strlen(InsertEntry->filename);                    
-			if (ocfs_find_index (osb, DirNode, &q, &index)) {
+	if (dirn->num_ent_used < osb->max_dir_node_ent) {
+		if (dirn->num_ent_used) {
+                        q.name = newfe->filename;
+                        q.len = strlen(newfe->filename);                    
+			if (ocfs_find_index (osb, dir, &q, &index)) {
 				/* Already inserted... */
 				status = -EEXIST;
 				goto bail;
 			}
 
-			if (index < DirNode->num_ent_used) {
-				fe = FILEENT (DirNode, index);
+			if (index < dirn->num_ent_used) {
+				fe = FILEENT (dir, index, BY_INDEX);
 
-				res = strcmp (fe->filename, InsertEntry->filename);
+				res = strcmp (fe->filename, newfe->filename);
 				if (res > 0) {
 					/* We are greater than the entry in question we */
 					/* shd be less than the one next to it */
@@ -1264,19 +1253,18 @@
 		} else {
 			index = 0;
 		}
-
 #ifdef ENABLE_OOPS_IN_DIRINDEX_CHECK
-		if (DirNode->num_ent_used > 1) {
+		if (dirn->num_ent_used > 1) {
 			ocfs_file_entry *f1, *f2;
 			int x, y;
-			f1=FILEENT (DirNode, 0);
-			for (x=1; x<DirNode->num_ent_used-1; ++x) {
-				f2=FILEENT (DirNode, x);
+			f1=FILEENT (dir, 0, BY_INDEX);
+			for (x=1; x<dirn->num_ent_used-1; ++x) {
+				f2=FILEENT (dir, x, BY_INDEX);
 				y=strcmp(f1->filename, f2->filename);
 				if (y < 0) {
 					LOG_ERROR_ARGS ("ocfs: f1=%s, f2=%s, dn=%u.%u, x=%d",
 						       	f1->filename, f2->filename,
-						       	HILO(DirNode->node_disk_off), x);
+						       	HILO(dirn->node_disk_off), x);
 					BUG();
 				}
 				f1 = f2;
@@ -1284,53 +1272,43 @@
 		}
 #endif
 
-		if (index < DirNode->num_ent_used)
-			memmove (&DirNode->index[index + 1],
-				 &DirNode->index[index],
-				 DirNode->num_ent_used - index);
+		if (index < dirn->num_ent_used)
+			memmove (&dirn->index[index + 1], &dirn->index[index],
+				 dirn->num_ent_used - index);
 
-		if (DirNode->num_ent_used) {
-			if (DirNode->num_del) {
+		if (dirn->num_ent_used) {
+			if (dirn->num_del) {
 				/* Insert at first deleted & change first deleted */
-				freeOffset = DirNode->first_del;
-				DirNode->num_del--;
-				if (DirNode->num_del) {
-					lastEntry =
-					    (ocfs_file_entry
-					     *) (FIRST_FILE_ENTRY (DirNode) +
-						 (freeOffset *
-						  OCFS_SECTOR_SIZE));
-					DirNode->first_del =
-					    lastEntry->next_del;
+				freeOffset = dirn->first_del;
+				dirn->num_del--;
+				if (dirn->num_del) {
+					lastEntry = FILEENT (dir, freeOffset, BY_OFFSET);
+					dirn->first_del = lastEntry->next_del;
 				}
 			} else {
 				/* Insert at end and change the index */
-				freeOffset = DirNode->num_ent_used;
+				freeOffset = dirn->num_ent_used;
 			}
 		} else {
 			freeOffset = 0;
 		}
 
-		lastEntry = (ocfs_file_entry *) (FIRST_FILE_ENTRY (DirNode) +
-						 (freeOffset *
-						  OCFS_SECTOR_SIZE));
+		lastEntry = FILEENT (dir, freeOffset, BY_OFFSET);
 
 		*IndexOffset = freeOffset;
 
 		/* Put the entry at the end */
-		InsertEntry->dir_node_ptr = DirNode->node_disk_off;
+		newfe->dir_node_ptr = dirn->node_disk_off;
 
-		memcpy (lastEntry, InsertEntry, osb->sect_size);
+		memcpy (lastEntry, newfe, osb->sect_size);
 
 		OCFS_SET_FLAG (lastEntry->sync_flags, OCFS_SYNC_FLAG_VALID);
 
-		lastEntry->this_sector = DirNode->node_disk_off +
-		    ((freeOffset + 1) * OCFS_SECTOR_SIZE);
-		InsertEntry->this_sector = lastEntry->this_sector;
+		lastEntry->this_sector = dirn->node_disk_off +
+					 ((freeOffset + 1) * OCFS_SECTOR_SIZE);
+		newfe->this_sector = lastEntry->this_sector;
 
-		if (!(InsertEntry->sync_flags & OCFS_SYNC_FLAG_VALID)) {
-			/* This is special for rename... */
-
+		if (!(newfe->sync_flags & OCFS_SYNC_FLAG_VALID)) {
 			/* Log into recovery that this name only needs to be deleted if we fail */
 			size = sizeof (ocfs_log_record);
 			size = (__u32) OCFS_ALIGN (size, osb->sect_size);
@@ -1347,31 +1325,27 @@
 			pLogRec->log_type = LOG_DELETE_NEW_ENTRY;
 
 			pLogRec->rec.del.node_num = osb->node_num;
-			pLogRec->rec.del.ent_del = InsertEntry->this_sector;
-			pLogRec->rec.del.parent_dirnode_off =
-			    LockNode->node_disk_off;
+			pLogRec->rec.del.ent_del = newfe->this_sector;
+			pLogRec->rec.del.parent_dirnode_off = LockNode->node_disk_off;
 			pLogRec->rec.del.flags = 0;
 
-			status =
-			    ocfs_write_node_log (osb, pLogRec, osb->node_num,
-					      LOG_RECOVER);
+			status = ocfs_write_node_log (osb, pLogRec, osb->node_num, LOG_RECOVER);
 			ocfs_safefree (pLogRec);
 			if (status < 0)
 				goto bail;
 		}
 
-		if (DISK_LOCK_FILE_LOCK (InsertEntry) ==
-		    OCFS_DLM_ENABLE_CACHE_LOCK) {
-			status = ocfs_write_metadata (osb, InsertEntry,
-					OCFS_SECTOR_SIZE, InsertEntry->this_sector);
+		if (DISK_LOCK_FILE_LOCK (newfe) == OCFS_DLM_ENABLE_CACHE_LOCK) {
+			status = ocfs_write_metadata (osb, newfe, OCFS_SECTOR_SIZE,
+						      newfe->this_sector);
 			if (status < 0) {
 				LOG_ERROR_STATUS (status);
 				goto bail;
 			}
 		}
 
-		DirNode->index[index] = freeOffset;
-		DirNode->num_ent_used++;
+		dirn->index[index] = freeOffset;
+		dirn->num_ent_used++;
 	} else {
 		LOG_ERROR_STATUS (status = -ENOSPC);
 		goto bail;
@@ -1380,7 +1354,7 @@
       bail:
 	LOG_EXIT_STATUS (status);
 	return status;
-}				/* ocfs_insert_dir_node */
+}				/* ocfs_insert_directory */
 
 /*
  * ocfs_del_file_entry()
@@ -1392,7 +1366,8 @@
 	int status = 0;
 	int tmpstat = 0;
 	__u32 offset;
-	ocfs_dir_node *PDirNode = NULL;
+	ocfs_directory *dir = NULL;
+	ocfs_dir_node *dirn = NULL;
 	ocfs_file_entry *fe;
 	ocfs_lock_res *dir_lres = NULL;
 	__u64 dir_off;
@@ -1415,66 +1390,66 @@
 	}
 	lock_acq = true;
 
-	PDirNode = ocfs_allocate_dirnode();
-	if (PDirNode == NULL) {
+	dir = ocfs_allocate_directory();
+	if (!dir) {
 		LOG_ERROR_STATUS (status = -ENOMEM);
 		goto leave;
 	}
+	dirn = (ocfs_dir_node *)dir->d_page[0];
 
-	status = ocfs_read_dir_node (osb, PDirNode, EntryToDel->dir_node_ptr);
+	status = ocfs_read_directory (osb, dir, EntryToDel->dir_node_ptr);
 	if (status < 0) {
 		LOG_ERROR_STATUS (status);
 		goto leave;
 	}
 
-	offset = (EntryToDel->this_sector - PDirNode->node_disk_off) /
+	offset = (EntryToDel->this_sector - dirn->node_disk_off) /
 				OCFS_SECTOR_SIZE;
 
 	offset -= 1;
-	for (index = 0; index < PDirNode->num_ent_used; index++) {
-		if (PDirNode->index[index] != offset)
+	for (index = 0; index < dirn->num_ent_used; index++) {
+		if (dirn->index[index] != offset)
 			continue;
 
-		fe = FILEENT (PDirNode, index);
+		fe = FILEENT (dir, index, BY_INDEX);
 
 		length = OCFS_SECTOR_SIZE;
 		if (memcmp (fe, EntryToDel, length) == 0) {
-			memmove (&PDirNode->index[index],
-				 &PDirNode->index[index + 1],
-				 PDirNode->num_ent_used - (index + 1));
+			memmove (&dirn->index[index], &dirn->index[index + 1],
+				 dirn->num_ent_used - (index + 1));
 
-			PDirNode->num_ent_used--;
-			if (PDirNode->num_ent_used == 0) {
-				PDirNode->num_del = 0;
+			dirn->num_ent_used--;
+			if (dirn->num_ent_used == 0) {
+				dirn->num_del = 0;
 			} else {
 				/* Insert this dir node as one containing a deleted entry if the */
 				/* count on the root dir node for deleted entries is 0 */
-				if (PDirNode->num_del != 0) {
-					PDirNode->num_del++;
+				if (dirn->num_del != 0) {
+					dirn->num_del++;
 					fe->sync_flags = OCFS_SYNC_FLAG_DELETED;
-					fe->next_del = PDirNode->first_del;
-					PDirNode->first_del = offset;
+					fe->next_del = dirn->first_del;
+					dirn->first_del = offset;
 				} else {
-					PDirNode->num_del++;
+					dirn->num_del++;
 					fe->sync_flags = OCFS_SYNC_FLAG_DELETED;
 					fe->next_del = INVALID_DIR_NODE_INDEX;
-					PDirNode->first_del = offset;
+					dirn->first_del = offset;
 				}
 			}
 
 			if (LockNode->head_del_ent_node == INVALID_NODE_POINTER) {
-				if (LockNode->node_disk_off != PDirNode->node_disk_off)
-					LockNode->head_del_ent_node = PDirNode->node_disk_off;
+				if (LockNode->node_disk_off != dirn->node_disk_off)
+					LockNode->head_del_ent_node = dirn->node_disk_off;
 				else
-					PDirNode->head_del_ent_node = PDirNode->node_disk_off;
+					dirn->head_del_ent_node = dirn->node_disk_off;
 			}
 
 			/* Release lock in memory and disk under lock */
 			ocfs_acquire_lockres (dir_lres);
-			if (LockNode->node_disk_off == PDirNode->node_disk_off) {
-				if (DISK_LOCK_FILE_LOCK (PDirNode) != OCFS_DLM_ENABLE_CACHE_LOCK) {
+			if (LockNode->node_disk_off == dirn->node_disk_off) {
+				if (DISK_LOCK_FILE_LOCK (dirn) != OCFS_DLM_ENABLE_CACHE_LOCK) {
 					dir_lres->lock_type = OCFS_DLM_NO_LOCK;
-					DISK_LOCK_FILE_LOCK (PDirNode) = OCFS_DLM_NO_LOCK;
+					DISK_LOCK_FILE_LOCK (dirn) = OCFS_DLM_NO_LOCK;
 					lock_rls = true;
 				}
 			} else {
@@ -1485,14 +1460,14 @@
 				}
 			}
 
-			status = ocfs_write_dir_node (osb, PDirNode, offset);
+			status = ocfs_write_directory (osb, dir, offset);
 			if (status < 0) {
 				ocfs_release_lockres (dir_lres);
 				LOG_ERROR_STATUS (status);
 				goto leave;
 			}
 
-			if (LockNode->node_disk_off != PDirNode->node_disk_off) {
+			if (LockNode->node_disk_off != dirn->node_disk_off) {
 				status = ocfs_write_metadata (osb, LockNode, osb->sect_size,
 							      LockNode->node_disk_off);
 				if (status < 0) {
@@ -1521,7 +1496,7 @@
 	}
 
 	ocfs_put_lockres (dir_lres);
-	ocfs_release_dirnode (PDirNode);
+	ocfs_release_directory (dir);
 	LOG_EXIT_STATUS (status);
 	return status;
 }				/* ocfs_del_file_entry */
@@ -1530,49 +1505,51 @@
  * ocfs_insert_file()
  *
  */
-int ocfs_insert_file (ocfs_super * osb, ocfs_dir_node * DirNode,
+int ocfs_insert_file (ocfs_super * osb, ocfs_directory * dir,
 		      ocfs_file_entry * InsertEntry, ocfs_dir_node * LockNode,
 		      ocfs_lock_res * LockResource, bool invalid_dirnode)
 {
 	int status = 0;
 	__u64 bitmapOffset = 0;
 	__u64 numClustersAlloc = 0;
-	ocfs_dir_node *pNewDirNode = NULL;
 	__s32 indexOffset = -1;
+	ocfs_dir_node *dirn = NULL;
+	ocfs_directory *newdir = NULL;
+	ocfs_dir_node *newdirn = NULL;
+	__u64 fileOffset = 0;
 
 	LOG_ENTRY ();
 
-	IF_TRACE (ocfs_print_dir_node (osb, DirNode));
+	IF_TRACE (ocfs_print_directory (osb, dir));
 
-	if (!IS_VALID_DIR_NODE (DirNode)) {
+	dirn = (ocfs_dir_node *)dir->d_page[0];
+	if (!IS_VALID_DIR_NODE (dirn)) {
 		LOG_ERROR_STATUS (status = -EFAIL);
 		goto leave;
 	}
 
-	if (!invalid_dirnode && DirNode->num_ent_used < osb->max_dir_node_ent) {
-		status = ocfs_insert_dir_node (osb, DirNode, InsertEntry, LockNode,
-					&indexOffset);
+	if (!invalid_dirnode && dirn->num_ent_used < osb->max_dir_node_ent) {
+		status = ocfs_insert_directory (osb, dir, InsertEntry, LockNode,
+						&indexOffset);
 		if (status < 0) {
 			LOG_ERROR_STATUS (status);
 			goto leave;
 		}
 	} else {
-		pNewDirNode = ocfs_allocate_dirnode();
-		if (pNewDirNode == NULL) {
+		newdir = ocfs_allocate_directory();
+		if (newdir == NULL) {
 			LOG_ERROR_STATUS (status = -ENOMEM);
 			goto leave;
 		}
+		newdirn = (ocfs_dir_node *)newdir->d_page[0];
 
-		if (DirNode->next_node_ptr != INVALID_NODE_POINTER) {
-			status = ocfs_read_dir_node (osb, pNewDirNode,
-					 DirNode->next_node_ptr);
+		if (dirn->next_node_ptr != INVALID_NODE_POINTER) {
+			status = ocfs_read_directory (osb, newdir, dirn->next_node_ptr);
 			if (status < 0) {
 				LOG_ERROR_STATUS (status);
 				goto leave;
 			}
 		} else {
-			__u64 fileOffset = 0;
-
 			/* Allocate a new dir node */
 			status =
 			    ocfs_alloc_node_block (osb, osb->vol_layout.dir_node_size,
@@ -1583,34 +1560,33 @@
 				LOG_ERROR_STATUS (status);
 				goto leave;
 			}
-			memset (pNewDirNode, 0, osb->vol_layout.dir_node_size);
-			ocfs_initialize_dir_node (osb, pNewDirNode, bitmapOffset,
-					   fileOffset, osb->node_num);
+			ocfs_initialize_dir_node (osb, newdirn, bitmapOffset,
+						  fileOffset, osb->node_num);
 		}
 
-		if ((DISK_LOCK_CURRENT_MASTER (DirNode) == osb->node_num) &&
-		    (DISK_LOCK_FILE_LOCK (DirNode) == OCFS_DLM_ENABLE_CACHE_LOCK)) {
-			DISK_LOCK_CURRENT_MASTER (pNewDirNode) = osb->node_num;
-			DISK_LOCK_FILE_LOCK (pNewDirNode) = OCFS_DLM_ENABLE_CACHE_LOCK;
+		if ((DISK_LOCK_CURRENT_MASTER (dirn) == osb->node_num) &&
+		    (DISK_LOCK_FILE_LOCK (dirn) == OCFS_DLM_ENABLE_CACHE_LOCK)) {
+			DISK_LOCK_CURRENT_MASTER (newdirn) = osb->node_num;
+			DISK_LOCK_FILE_LOCK (newdirn) = OCFS_DLM_ENABLE_CACHE_LOCK;
 		}
 
-		status = ocfs_insert_dir_node (osb, pNewDirNode, InsertEntry, LockNode,
-					&indexOffset);
+		status = ocfs_insert_directory (osb, newdir, InsertEntry,
+						LockNode, &indexOffset);
 		if (status < 0) {
 			LOG_ERROR_STATUS (status);
 			goto leave;
 		}
 
-		if (LockNode->node_disk_off == DirNode->node_disk_off) {
-			DirNode->free_node_ptr = pNewDirNode->node_disk_off;
+		if (LockNode->node_disk_off == dirn->node_disk_off) {
+			dirn->free_node_ptr = newdirn->node_disk_off;
 		} else {
-			LockNode->free_node_ptr = pNewDirNode->node_disk_off;
+			LockNode->free_node_ptr = newdirn->node_disk_off;
 		}
 
 		/* Insert in this dirnode and setup the pointers */
-		DirNode->next_node_ptr = pNewDirNode->node_disk_off;
+		dirn->next_node_ptr = newdirn->node_disk_off;
 
-		status = ocfs_write_dir_node (osb, pNewDirNode, indexOffset);
+		status = ocfs_write_directory (osb, newdir, indexOffset);
 		if (status < 0) {
 			LOG_ERROR_STATUS (status);
 			goto leave;
@@ -1621,10 +1597,10 @@
 	/* Release the lock in memory and disk under lock */
 	ocfs_acquire_lockres (LockResource);
 
-	if (LockNode->node_disk_off == DirNode->node_disk_off) {
-		if (DISK_LOCK_FILE_LOCK (DirNode) != OCFS_DLM_ENABLE_CACHE_LOCK) {
+	if (LockNode->node_disk_off == dirn->node_disk_off) {
+		if (DISK_LOCK_FILE_LOCK (dirn) != OCFS_DLM_ENABLE_CACHE_LOCK) {
 			LockResource->lock_type = OCFS_DLM_NO_LOCK;
-			DISK_LOCK_FILE_LOCK (DirNode) = OCFS_DLM_NO_LOCK;
+			DISK_LOCK_FILE_LOCK (dirn) = OCFS_DLM_NO_LOCK;
 		}
 	} else {
 		if (DISK_LOCK_FILE_LOCK (LockNode) != OCFS_DLM_ENABLE_CACHE_LOCK) {
@@ -1633,14 +1609,14 @@
 		}
 	}
 
-	status = ocfs_write_dir_node (osb, DirNode, indexOffset);
+	status = ocfs_write_directory (osb, dir, indexOffset);
 	if (status < 0) {
 		ocfs_release_lockres (LockResource);
 		LOG_ERROR_STATUS (status);
 		goto leave;
 	}
 
-	if (LockNode->node_disk_off != DirNode->node_disk_off) {
+	if (LockNode->node_disk_off != dirn->node_disk_off) {
 		status = ocfs_write_metadata (osb, LockNode, osb->sect_size,
 					       LockNode->node_disk_off);
 		if (status < 0) {
@@ -1653,7 +1629,7 @@
 	ocfs_release_lockres (LockResource);
 
 leave:
-	ocfs_release_dirnode (pNewDirNode);
+	ocfs_release_directory (newdir);
 
 	LOG_EXIT_STATUS (status);
 	return status;
@@ -1664,16 +1640,19 @@
  * ocfs_validate_dir_index()
  *
  */
-int ocfs_validate_dir_index (ocfs_super *osb, ocfs_dir_node *dirnode)
+int ocfs_validate_dir_index (ocfs_super *osb, ocfs_directory *dir)
 {
 	ocfs_file_entry *fe = NULL;
+	ocfs_dir_node *dirnode = NULL;
 	int status = 0;
 	__u8 i;
 	__u8 offset;
 	__u8 *ind = NULL;
 
-	LOG_ENTRY_ARGS ("(osb=0x%p, dn=0x%p)\n", osb, dirnode);
+	LOG_ENTRY_ARGS ("(osb=0x%p, dir=0x%p)\n", osb, dir);
 
+	dirnode = (ocfs_dir_node *)dir->d_page[0];
+
 	if ((ind = (__u8 *)ocfs_malloc (256)) == NULL) {
 		LOG_ERROR_STATUS (status = -ENOMEM);
 		goto bail;
@@ -1689,8 +1668,7 @@
 		} else
 			ind[offset] = 1;
 
-		fe = (ocfs_file_entry *) (FIRST_FILE_ENTRY (dirnode) +
-					  (offset * OCFS_SECTOR_SIZE));
+		fe = FILEENT(dir, offset, BY_OFFSET);
 
 		if (!fe->sync_flags) {
 			status = -EBADSLT;
@@ -1699,7 +1677,7 @@
 	}
 
 	if (status == -EBADSLT)
-		LOG_ERROR_ARGS ("corrupted index in dirnode=%u.%u",
+		LOG_TRACE_ARGS ("corrupted index in dirnode=%u.%u",
 			       	HILO(dirnode->node_disk_off));
 
 bail:
@@ -1713,9 +1691,10 @@
  * ocfs_validate_num_del()
  *
  */
-int ocfs_validate_num_del (ocfs_super *osb, ocfs_dir_node *dirnode)
+int ocfs_validate_num_del (ocfs_super *osb, ocfs_directory *dir)
 {
 	ocfs_file_entry *fe = NULL;
+	ocfs_dir_node *dirnode = NULL;
 	int i;
 	int j;
 	int status = 0;
@@ -1725,8 +1704,9 @@
 	__u64 tmpoff;
 	int reason = 0;
 
-	LOG_ENTRY_ARGS ("(osb=0x%p, dn=0x%p)\n", osb, dirnode);
+	LOG_ENTRY_ARGS ("(osb=0x%p, dir=0x%p)\n", osb, dir);
 
+	dirnode = (ocfs_dir_node *)dir->d_page[0];
 	if (!dirnode->num_del)
 		goto bail;
 
@@ -1762,8 +1742,7 @@
 		} else
 			ind[offset] = 1;
 
-		fe = (ocfs_file_entry *) (FIRST_FILE_ENTRY (dirnode) +
-					  (offset * OCFS_SECTOR_SIZE));
+		fe = FILEENT (dir, offset, BY_OFFSET);
 
 		/* file has to be deleted to be in the list */
 		if (fe->sync_flags) {
@@ -1793,3 +1772,23 @@
 	LOG_EXIT_STATUS (status);
 	return status;
 }				/* ocfs_validate_num_del */
+
+/*
+ * ocfs_validate_directory()
+ *
+ */
+int ocfs_validate_directory (ocfs_super *osb, ocfs_directory *dir)
+{
+	int ret = 0;
+	ocfs_dir_node *dirn = (ocfs_dir_node *)dir->d_page[0];
+
+	if (!IS_VALID_DIR_NODE (dirn))
+		ret = -EFAIL;
+
+	if (ret == 0)
+		ret = ocfs_validate_dir_index (osb, dir);
+	if (ret == 0)
+		ret = ocfs_validate_num_del (osb, dir);
+
+	return ret;
+}				/* ocfs_validate_directory */

Modified: trunk/ocfs2/Common/ocfsgendlm.c
===================================================================
--- trunk/ocfs2/Common/ocfsgendlm.c	2004-06-18 21:45:58 UTC (rev 7)
+++ trunk/ocfs2/Common/ocfsgendlm.c	2004-09-14 21:21:57 UTC (rev 8)
@@ -579,7 +579,7 @@
 		status = ocfs_get_vote_on_disk (osb, lock_id, lock_type, flags,
 				&gotvotemap, vote_map, lock_seq_num, &fileopenmap);
 		if (status < 0) {
-			if (status != -EAGAIN)
+			if (status != -EAGAIN && status != -EBUSY)
 				LOG_ERROR_STATUS (status);
 			goto bail;
 		}
@@ -819,7 +819,7 @@
 	status = ocfs_wait_for_vote (osb, lock_id, lock_type, flags, vote_map,
 				     5000, lockseqnum, lockres);
 	if (status < 0) {
-		if (status != -EAGAIN)
+		if (status != -EAGAIN && status != -EBUSY)
 			LOG_ERROR_STATUS (status);
 		goto bail;
 	}
@@ -1478,6 +1478,8 @@
 		    updated = false;
                     continue;
                 } else {
+		    if (status != -EBUSY)
+			LOG_ERROR_STATUS (status);
                     RELEASE_WITH_FLAG(lockres, lockres_acq); 
                     goto finally;
                 }

Modified: trunk/ocfs2/Common/ocfsgenmisc.c
===================================================================
--- trunk/ocfs2/Common/ocfsgenmisc.c	2004-06-18 21:45:58 UTC (rev 7)
+++ trunk/ocfs2/Common/ocfsgenmisc.c	2004-09-14 21:21:57 UTC (rev 8)
@@ -177,10 +177,15 @@
  */
 int ocfs_create_root_dir_node (ocfs_super * osb)
 {
-	int status = 0, tempstat;
-	ocfs_dir_node *NewDirNode = NULL;
-	__u64 bitmapOffset, numClustersAlloc, fileOffset = 0;
-	__u32 size, i;
+	int status = 0;
+	int tempstat;
+	ocfs_dir_node *newdirn = NULL;
+	ocfs_directory *newdir = NULL;
+	__u64 bitmapOffset;
+	__u64 numClustersAlloc;
+	__u64 fileOffset = 0;
+	__u32 size;
+	__u32 i;
 	ocfs_vol_disk_hdr *volDiskHdr = NULL;
 	ocfs_lock_res *LockResource = NULL;
 	bool lock_acq = false;
@@ -206,11 +211,12 @@
 	} else
 		lock_acq = true;
 
-	NewDirNode = ocfs_allocate_dirnode();
-	if (NewDirNode == NULL) {
+	newdir = ocfs_allocate_directory();
+	if (newdir == NULL) {
 		LOG_ERROR_STATUS (status = -ENOMEM);
 		goto bail;
 	}
+	newdirn = (ocfs_dir_node *)newdir->d_page[0];
 
 	size = (ONE_MEGA_BYTE > osb->vol_layout.cluster_size) ?
 	    ONE_MEGA_BYTE : osb->vol_layout.cluster_size;
@@ -264,11 +270,11 @@
 
 	osb->vol_layout.root_start_off = bitmapOffset;
 
-	ocfs_initialize_dir_node (osb, NewDirNode, bitmapOffset, fileOffset,
+	ocfs_initialize_dir_node (osb, newdirn, bitmapOffset, fileOffset,
 				  osb->node_num);
-	NewDirNode->dir_node_flags |= DIR_NODE_FLAG_ROOT;
+	newdirn->dir_node_flags |= DIR_NODE_FLAG_ROOT;
 
-	status = ocfs_write_dir_node (osb, NewDirNode, -1);
+	status = ocfs_write_directory (osb, newdir, -1);
 	if (status < 0) {
 		LOG_ERROR_STATUS (status);
 		goto bail;
@@ -293,7 +299,7 @@
 		goto bail;
 	}
 
-      bail:
+bail:
 	if (status < 0) {
 		LOG_ERROR_STR ("Disabling Volume");
 		osb->vol_state = VOLUME_DISABLED;
@@ -308,7 +314,7 @@
 			osb->vol_state = VOLUME_DISABLED;
 		}
 	}
-	ocfs_release_dirnode (NewDirNode);
+	ocfs_release_directory (newdir);
 	ocfs_safefree (volDiskHdr);
 	ocfs_safefree (buf);
 	ocfs_release_file_entry (sys_fe);
@@ -602,11 +608,7 @@
 	init_MUTEX (&(osb->comm_lock));
 	init_MUTEX (&(osb->trans_lock));
 
-#ifdef __LP64__
-#define HASHBITS	11
-#else
-#define HASHBITS	12
-#endif
+#define HASHBITS	10
 	if (!ocfs_hash_create (&(osb->root_sect_node), HASHBITS)) {
 		LOG_ERROR_STATUS (status = -ENOMEM);
 		goto bail;
@@ -1070,4 +1072,98 @@
 	ocfs_safefree (dn);
 	LOG_EXIT_STATUS (status);
 	return status;
-}				/* ocfs _is_dir_empty */
+}				/* ocfs_is_dir_empty */
+
+/*
+ * ocfs_allocate_directory()
+ *
+ */
+ocfs_directory * ocfs_allocate_directory (void)
+{
+	ocfs_directory *dir = NULL;
+	int status = -ENOMEM;
+	int i;
+
+	dir = ocfs_malloc (sizeof(ocfs_directory));
+	if (!dir) {
+		LOG_ERROR_STATUS (status);
+		goto bail;
+	}
+	memset (dir, 0, sizeof(ocfs_directory));
+
+	dir->d_pagecnt = OcfsGlobalCtxt.g_pagecnt;
+	dir->d_entperpage = OcfsGlobalCtxt.g_entperpage;
+	dir->d_entinbits = OcfsGlobalCtxt.g_entinbits;
+	dir->d_entmask = OcfsGlobalCtxt.g_entmask;
+
+	for (i = 0; i < dir->d_pagecnt; ++i) {
+#ifdef USERSPACE_TOOL
+		dir->d_page[i] = ocfs_malloc(PAGE_SIZE);
+#else
+		dir->d_page[i] = (__u8 *)get_free_page (GFP_NOFS);
+#endif
+		if (!dir->d_page[i]) {
+			LOG_ERROR_STATUS (status);
+			goto bail;
+		}
+	}
+	LOG_TRACE_ARGS("ocfs: alloced %d pages\n", dir->d_pagecnt);
+	status = 0;
+
+bail:
+	if (status < 0) {
+		ocfs_release_directory (dir);
+		dir = NULL;
+	}
+
+	return dir;
+}				/* ocfs_allocate_directory */
+
+/*
+ * ocfs_release_directory()
+ *
+ */
+void ocfs_release_directory (ocfs_directory *dir)
+{
+	int i;
+
+	if (!dir)
+		goto bail;
+
+	for (i = 0; i < dir->d_pagecnt; ++i)
+		if (dir->d_page[i])
+#ifdef USERSPACE_TOOL
+			ocfs_safefree (dir->d_page[i]);
+#else
+			free_page ((unsigned long)dir->d_page[i]);
+#endif
+	ocfs_safefree (dir);
+	LOG_TRACE_ARGS("ocfs: freed 'em all\n");
+
+bail:
+	return ;
+}				/* ocfs_release_directory */
+
+#if 0
+/*
+ * ocfs_read_directory()
+ *
+ */
+int ocfs_read_directory (ocfs_super *osb, ocfs_directory *dir, __u64 off)
+{
+	int i;
+	__u64 doff = off;
+	int status = 0;
+
+	for (i = 0; i < dir->d_pagecnt; ++i) {
+		status = ocfs_read_disk (osb, dir->d_page[i], PAGE_SIZE, doff);
+		if (status < 0) {
+			LOG_ERROR_STATUS (status);
+			goto bail;
+		}
+		doff += PAGE_SIZE;
+	}
+bail:
+	return status;
+}				/* ocfs_read_directory */
+#endif

Modified: trunk/ocfs2/Linux/inc/ocfsiosup.h
===================================================================
--- trunk/ocfs2/Linux/inc/ocfsiosup.h	2004-06-18 21:45:58 UTC (rev 7)
+++ trunk/ocfs2/Linux/inc/ocfsiosup.h	2004-09-14 21:21:57 UTC (rev 8)
@@ -69,4 +69,6 @@
 int ocfs_read_disk_ex (ocfs_super * osb, void **Buffer, __u32 AllocLen,
 		       __u32 ReadLen, __u64 Offset);
 
+int ocfs_read_directory (ocfs_super *osb, ocfs_directory *dir, __u64 offset);
+
 #endif				/* _OCFSIOSUP_H_ */

Modified: trunk/ocfs2/Linux/ocfsioctl.c
===================================================================
--- trunk/ocfs2/Linux/ocfsioctl.c	2004-06-18 21:45:58 UTC (rev 7)
+++ trunk/ocfs2/Linux/ocfsioctl.c	2004-09-14 21:21:57 UTC (rev 8)
@@ -39,7 +39,9 @@
 	ocfs_ioc *data = NULL;
 	extern char *ocfs_version;
 	int ret = 0;
+#ifdef CDSL_ENABLED
 	ocfs_super *osb;
+#endif
 	ocfs_cdsl *cdsl = NULL;
 
 	LOG_ENTRY_ARGS ("(0x%p, 0x%p, %u, %lu)\n", inode, filp, cmd, arg);
@@ -67,6 +69,7 @@
 		    data->nodenum = 999;	/* TODO */
 		    ret = copy_to_user ((ocfs_ioc *) arg, data, sizeof (ocfs_ioc));
 		    break;
+#ifdef CDSL_ENABLED
 	    case OCFS_IOC_CDSL_MODIFY:
 		    osb = ((ocfs_super *)(inode->i_sb->u.generic_sbp));
 		    if (!IS_VALID_OSB(osb)) {
@@ -85,6 +88,7 @@
 		    }
 		    break;
 	    case OCFS_IOC_CDSL_GETINFO:	/* TODO: implement */
+#endif  /* CDSL_ENABLED */
 	    default:
 		    ret = -ENOTTY;
 		    break;

Modified: trunk/ocfs2/Linux/ocfsiosup.c
===================================================================
--- trunk/ocfs2/Linux/ocfsiosup.c	2004-06-18 21:45:58 UTC (rev 7)
+++ trunk/ocfs2/Linux/ocfsiosup.c	2004-09-14 21:21:57 UTC (rev 8)
@@ -653,3 +653,79 @@
 	LOG_EXIT_STATUS (status);
 	return status;
 }				/* ocfs_read_disk_ex */
+
+
+/*
+ * ocfs_read_directory()
+ * This function should ideally be merged with LinuxReadForceDisk().
+ *
+ */
+int ocfs_read_directory (ocfs_super *osb, ocfs_directory *dir, __u64 offset)
+{
+	int status = 0;
+	struct super_block *sb;
+	int nr, i, j;
+	__u64 blocknum;
+	kdev_t dev;
+	struct buffer_head *bh;
+	struct buffer_head **bhs = NULL;
+	char *kaddr;
+	__u8 *p = NULL;
+
+	LOG_ENTRY_ARGS ("(osb=0x%p, dir=0x%p, off=%u.%u)\n", osb, dir, HILO(offset));
+
+	OCFS_ASSERT (osb && osb->sb);
+	OCFS_ASSERT (dir);
+
+	sb = osb->sb;
+	dev = sb->s_dev;
+
+	nr = (OCFS_DEFAULT_DIR_NODE_SIZE + 511) >> 9;
+	bhs = kmalloc (nr * sizeof(bh), GFP_KERNEL);
+	if (bhs == NULL) {
+	        LOG_ERROR_STATUS (status = -ENOMEM);
+	        goto bail;
+	}
+
+	blocknum = offset >> sb->s_blocksize_bits;
+
+	for (i = 0 ; i < nr ; i++) {
+		bh = getblk (dev, blocknum++, sb->s_blocksize);
+		if (bh == NULL) {
+			LOG_ERROR_STATUS (status = -ENOMEM);
+			goto bail;
+		}
+		bhs[i] = bh;
+		lock_buffer(bh);
+		if (!buffer_dirty(bh)) 
+			mark_buffer_uptodate(bh, false);
+		unlock_buffer(bh);
+	}	
+
+	ll_rw_block(READ, nr, bhs);
+
+	p = dir->d_page[0];
+	for (i = 0, j = 0; i < nr; i++) {
+		if (!j)
+			p = dir->d_page[i >> dir->d_entinbits];
+		else
+			p += sb->s_blocksize;
+		
+		bh = bhs[i];
+		wait_on_buffer(bh);
+		lock_buffer(bh);
+		kaddr = kmap(bh->b_page);
+		memcpy(p, kaddr + ((unsigned long)(bh)->b_data & ~PAGE_MASK), 512);
+		kunmap(bh->b_page);
+		unlock_buffer(bh);
+		brelse(bh);
+		j = ((j == dir->d_entmask) ? 0 : j + 1);
+	}
+
+bail:
+	if (bhs)
+		kfree(bhs);
+
+	LOG_EXIT_STATUS (status);
+	return status;
+}				/* ocfs_read_directory */

Modified: trunk/ocfs2/Linux/ocfsmain.c
===================================================================
--- trunk/ocfs2/Linux/ocfsmain.c	2004-06-18 21:45:58 UTC (rev 7)
+++ trunk/ocfs2/Linux/ocfsmain.c	2004-09-14 21:21:57 UTC (rev 8)
@@ -432,7 +432,12 @@
 	spin_lock (&OcfsGlobalCtxt.comm_seq_lock);
 	OcfsGlobalCtxt.comm_seq_num = 0;
 	spin_unlock (&OcfsGlobalCtxt.comm_seq_lock);
-	
+
+	OcfsGlobalCtxt.g_pagecnt = OCFS_DEFAULT_DIR_NODE_SIZE / PAGE_SIZE;
+	OcfsGlobalCtxt.g_entperpage = PAGE_SIZE / OCFS_SECTOR_SIZE;
+	OcfsGlobalCtxt.g_entinbits = num_in_bits(OcfsGlobalCtxt.g_entperpage);
+	OcfsGlobalCtxt.g_entmask = OcfsGlobalCtxt.g_entperpage - 1;
+
 	/* Initialize the proc interface */
 	ocfs_proc_init ();
 
@@ -2192,6 +2197,7 @@
 		status = ocfs_find_files_on_disk (osb, parentDirCluster, &(dentry->d_name),
 					  fe, NULL);
 		if (status < 0) {
+//			BUG();
 			LOG_ERROR_STATUS (status);
 			goto leave;
 		}
@@ -3754,9 +3760,6 @@
 	OcfsGlobalCtxt.fe_cache = kmem_cache_create ("ocfs_fileentry",
 		OCFS_SECTOR_SIZE, 0, SLAB_NO_REAP | SLAB_HWCACHE_ALIGN, NULL, NULL);
 
-	OcfsGlobalCtxt.dirnode_cache = kmem_cache_create ("ocfs_dirnode",
-		OCFS_DEFAULT_DIR_NODE_SIZE, 0, SLAB_NO_REAP | SLAB_HWCACHE_ALIGN, NULL, NULL);
-
 	OCFS_SET_FLAG (OcfsGlobalCtxt.flags, OCFS_FLAG_MEM_LISTS_INITIALIZED);
 
 	return 0;
@@ -3772,7 +3775,6 @@
 	kmem_cache_destroy (OcfsGlobalCtxt.ofile_cache);
 	kmem_cache_destroy (OcfsGlobalCtxt.fe_cache);
 	kmem_cache_destroy (OcfsGlobalCtxt.lockres_cache);
-	kmem_cache_destroy (OcfsGlobalCtxt.dirnode_cache);
 	OCFS_CLEAR_FLAG (OcfsGlobalCtxt.flags, OCFS_FLAG_MEM_LISTS_INITIALIZED);
 }				/* ocfs_free_mem_lists */
 

Modified: trunk/ocfs2/Linux/ocfsproc.c
===================================================================
--- trunk/ocfs2/Linux/ocfsproc.c	2004-06-18 21:45:58 UTC (rev 7)
+++ trunk/ocfs2/Linux/ocfsproc.c	2004-09-14 21:21:57 UTC (rev 8)
@@ -164,8 +164,6 @@
 				slabname = "lockres";
 			else if (item->u.slab == OcfsGlobalCtxt.fe_cache)
 				slabname = "fe";
-			else if (item->u.slab == OcfsGlobalCtxt.dirnode_cache)
-				slabname = "dirnode";
 			else
 				slabname = "unknown";
 

Modified: trunk/vendor/redhat/ocfs-2.4.18-e.spec.in
===================================================================
--- trunk/vendor/redhat/ocfs-2.4.18-e.spec.in	2004-06-18 21:45:58 UTC (rev 7)
+++ trunk/vendor/redhat/ocfs-2.4.18-e.spec.in	2004-09-14 21:21:57 UTC (rev 8)
@@ -18,7 +18,7 @@
 
 # This must be changed to the minimum ABI compat kernel version expected
 %define base 2.4.18-e
-%define kver %{base}.37
+%define kver %{base}.43
 
 # The minimum -support package required for the kernel bits.
 %define support_ver     @SUPPORT_REQUIRED_VERSION@



More information about the Ocfs-commits mailing list