Widen page count field in blockinfo to allow lots of pages per block
[yaffs/.git] / yaffs_guts.h
index 4aafe1dae791dc5b3a879ccd1d4bae9a82142c73..03f8d0de9bca39b8f606288fe24fcae66052fa7e 100644 (file)
@@ -14,7 +14,7 @@
  *
  * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
  *
- * $Id: yaffs_guts.h,v 1.17 2004-10-10 17:54:59 charles Exp $
+ * $Id: yaffs_guts.h,v 1.19 2005-03-29 22:43:38 charles Exp $
  */
 
 #ifndef __YAFFS_GUTS_H__
@@ -162,8 +162,8 @@ typedef struct
 #ifndef CONFIG_YAFFS_NO_YAFFS2
        __u32 sequenceNumber;   // block sequence number for yaffs2
 #endif
-       int   softDeletions:8;  // number of soft deleted pages
-    int   pagesInUse:8;                // number of pages in use
+       int   softDeletions:12; // number of soft deleted pages
+    int   pagesInUse:12;       // number of pages in use
     __u32 blockState:4;        // One of the above block states
     __u32 needsRetiring:1;     // Data has failed on this block, need to get valid data off
                                                // and retire the block.
@@ -360,6 +360,8 @@ struct  yaffs_ObjectStruct
 
 #ifdef __KERNEL__
        struct inode *myInode;
+       __u8  deferedFree;   // YAFFS has removed the object from NAND, but it is being kept
+                            // Alive until the inode is cleared to prevent inode inconsistencies.
 #endif
 
 
@@ -575,6 +577,9 @@ yaffs_Object *yaffs_LostNFound(yaffs_Device *dev);
 void  yfsd_WinFileTimeNow(__u32 target[2]);
 #endif
 
+#ifdef __KERNEL__
+void yaffs_HandleDeferedFree(yaffs_Object *obj);
+#endif
 
 // Debug dump 
 int yaffs_DumpObject(yaffs_Object *obj);