Index: src/kernel/linux-2.6/pvfs2-utils.c
===================================================================
--- src/kernel/linux-2.6/pvfs2-utils.c	(revision 18647)
+++ src/kernel/linux-2.6/pvfs2-utils.c	(working copy)
@@ -1997,6 +1997,9 @@
     return (ret);
 }
 
+/*
+  We want to clear everything except for rw_semaphore and the vfs_inode
+*/
 void pvfs2_inode_initialize(pvfs2_inode_t *pvfs2_inode)
 {
     if (!InitFlag(pvfs2_inode))
@@ -2006,6 +2009,8 @@
         pvfs2_inode->last_failed_block_index_read = 0;
         memset(pvfs2_inode->link_target, 0, sizeof(pvfs2_inode->link_target));
         pvfs2_inode->error_code = 0;
+        pvfs2_inode->revalidate_failed = 0;
+        pvfs2_inode->pinode_flags = 0;
         SetInitFlag(pvfs2_inode);
     }
 }
Index: src/kernel/linux-2.6/pvfs2-cache.c
===================================================================
--- src/kernel/linux-2.6/pvfs2-cache.c	(revision 18647)
+++ src/kernel/linux-2.6/pvfs2-cache.c	(working copy)
@@ -202,28 +202,11 @@
     }
 }
 
-
-static void dev_req_cache_ctor(
-#if defined(HAVE_KMEM_CACHE_CREATE_CTOR_ONE_PARAM)
-    void *req
-#elif defined(HAVE_KMEM_CACHE_CREATE_CTOR_TWO_PARAM)
-    struct kmem_cache *cachep,
-    void *req
-#else
-    void *req,
-    pvfs2_kmem_cache_t * cachep,
-    unsigned long flags
-#endif
-)
-{
-    memset(req, 0, sizeof(MAX_ALIGNED_DEV_REQ_DOWNSIZE));
-}
-
 int dev_req_cache_initialize(void)
 {
     dev_req_cache = kmem_cache_create(
         "pvfs28_devreqcache", MAX_ALIGNED_DEV_REQ_DOWNSIZE, 0,
-        PVFS2_CACHE_CREATE_FLAGS, dev_req_cache_ctor
+        PVFS2_CACHE_CREATE_FLAGS, NULL
 #ifdef HAVE_KMEM_CACHE_CREATE_DESTRUCTOR_PARAM
         , NULL
 #endif
@@ -256,6 +239,10 @@
     {
         gossip_err("Failed to allocate from dev_req_cache\n"); 
     }
+    else
+    {
+        memset(buffer, 0, sizeof(MAX_ALIGNED_DEV_REQ_DOWNSIZE));
+    }
     return buffer;
 }
 
@@ -287,9 +274,7 @@
 {
     pvfs2_inode_t *pvfs2_inode = req;
 
-    memset(pvfs2_inode, 0, sizeof(pvfs2_inode_t));
     ClearInitFlag(pvfs2_inode);
-
     pvfs2_inode_initialize(pvfs2_inode);
 
 #ifndef PVFS2_LINUX_KERNEL_2_4
@@ -377,7 +362,10 @@
     {
         gossip_err("Failed to allocate pvfs2_inode\n");
     }
-    else {
+    else 
+    {
+        ClearInitFlag(pvfs2_inode);
+        pvfs2_inode_initialize(pvfs2_inode);
         add_to_pinode_list(pvfs2_inode);
     }
     return pvfs2_inode;
@@ -398,28 +386,11 @@
 
 #ifdef HAVE_AIO_VFS_SUPPORT
 
-static void kiocb_ctor(
-#if defined(HAVE_KMEM_CACHE_CREATE_CTOR_ONE_PARAM)
-    void *req
-#elif defined(HAVE_KMEM_CACHE_CREATE_CTOR_TWO_PARAM)
-    struct kmem_cache *cachep,
-    void *req
-#else
-    void *req,
-    pvfs2_kmem_cache_t * cachep,
-    unsigned long flags
-#endif
-)
-{
-    memset(req, 0, sizeof(pvfs2_kiocb));
-}
-
-
 int kiocb_cache_initialize(void)
 {
     pvfs2_kiocb_cache = kmem_cache_create(
         "pvfs28_kiocbcache", sizeof(pvfs2_kiocb), 0,
-        PVFS2_CACHE_CREATE_FLAGS, kiocb_ctor
+        PVFS2_CACHE_CREATE_FLAGS, NULL
 #ifdef HAVE_KMEM_CACHE_CREATE_DESTRUCTOR_PARAM
         , NULL
 #endif
@@ -452,6 +423,10 @@
     {
         gossip_err("kiocb_alloc: kmem_cache_alloc failed!\n");
     }
+    else
+    {
+        memset(x, 0, sizeof(pvfs2_kiocb));
+    }
     return x;
 }
 
