changeset 371:5cc599caef44

Add extra checks to oldest dirty sequence checking
author charles <charles>
date Sun, 07 Mar 2010 23:43:34 +0000
parents 8f4ecc1911fe
children 952d0cdd1cbc
files yaffs_guts.c
diffstat 1 files changed, 10 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/yaffs_guts.c
+++ b/yaffs_guts.c
@@ -12,7 +12,7 @@
  */
 
 const char *yaffs_guts_c_version =
-    "$Id: yaffs_guts.c,v 1.114 2010-03-07 22:07:03 charles Exp $";
+    "$Id: yaffs_guts.c,v 1.115 2010-03-07 23:43:34 charles Exp $";
 
 #include "yportenv.h"
 #include "yaffs_trace.h"
@@ -1062,7 +1062,9 @@ static int yaffs_CalcOldestDirtySequence
 	__u32 seq;
 	yaffs_BlockInfo *b = 0;
 
-	
+	if(!dev->param.isYaffs2)
+		return 0;
+
 	/* Find the oldest dirty sequence number. */
 	seq = dev->sequenceNumber;
 	for (i = dev->internalStartBlock; i <= dev->internalEndBlock; i++) {
@@ -1078,7 +1080,7 @@ static int yaffs_CalcOldestDirtySequence
 
 static void yaffs_FindOldestDirtySequence(yaffs_Device *dev)
 {
-	if(!dev->oldestDirtySequence)
+	if(dev->param.isYaffs2 && !dev->oldestDirtySequence)
 		dev->oldestDirtySequence = 
 			yaffs_CalcOldestDirtySequence(dev);
 
@@ -1099,6 +1101,9 @@ static void yaffs_FindOldestDirtySequenc
 static void yaffs_ClearOldestDirtySequence(yaffs_Device *dev, yaffs_BlockInfo *bi)
 {
 
+	if(!dev->param.isYaffs2)
+		return;
+
 	if(!bi || bi->sequenceNumber == dev->oldestDirtySequence)
 		dev->oldestDirtySequence = 0;
 }
@@ -1110,7 +1115,7 @@ static void yaffs_ClearOldestDirtySequen
  */
 static void yaffs_UpdateOldestDirtySequence(yaffs_Device *dev, yaffs_BlockInfo *bi)
 {
-	if(dev->oldestDirtySequence){
+	if(dev->param.isYaffs2 && dev->oldestDirtySequence){
 		if(dev->oldestDirtySequence > bi->sequenceNumber)
 			dev->oldestDirtySequence = bi->sequenceNumber;
 	}
@@ -1798,6 +1803,7 @@ static void yaffs_SoftDeleteChunk(yaffs_
 	if (theBlock) {
 		theBlock->softDeletions++;
 		dev->nFreeChunks++;
+		yaffs_UpdateOldestDirtySequence(dev,theBlock);
 	}
 }