Change locking to allow reentry during readdir
[yaffs2.git] / yaffs_guts.h
index 3385bd4c6a8b3c86b6d5ca56afd53f49de9e78bf..abcb74fa13534995fcb09b9bfdc4055a433186e2 100644 (file)
@@ -405,6 +405,8 @@ typedef union {
        yaffs_HardLinkStructure hardLinkVariant;
 } yaffs_ObjectVariant;
 
+
+
 struct yaffs_ObjectStruct {
        __u8 deleted:1;         /* This should only apply to unlinked files. */
        __u8 softDeleted:1;     /* it has also been soft deleted */
@@ -532,6 +534,7 @@ typedef struct {
 
 /*----------------- Device ---------------------------------*/
 
+
 struct yaffs_DeviceStruct {
        struct ylist_head devList;
        const char *name;
@@ -637,6 +640,7 @@ struct yaffs_DeviceStruct {
 
        struct semaphore sem;   /* Semaphore for waiting on erasure.*/
        struct semaphore grossLock;     /* Gross locking semaphore */
+       struct rw_semaphore dirLock; /* Lock the directory structure */
        __u8 *spareBuffer;      /* For mtdif2 use. Don't know the size of the buffer
                                 * at compile time so we have to allocate it.
                                 */
@@ -768,7 +772,9 @@ struct yaffs_DeviceStruct {
        /* yaffs2 runtime stuff */
        unsigned sequenceNumber;        /* Sequence number of currently allocating block */
        unsigned oldestDirtySequence;
-
+       
+       /* Auto empty lost and found directory on mount */
+       int emptyLostAndFound;
 };
 
 typedef struct yaffs_DeviceStruct yaffs_Device;