projects
/
yaffs2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add hardlinks to yaffs direct
[yaffs2.git]
/
yaffs_tagscompat.c
diff --git
a/yaffs_tagscompat.c
b/yaffs_tagscompat.c
index 61880d5284fe3c598aa89a5b4757161b4b17fe55..b51bccd6c91ab50a099e6a262739bfdf460af8a7 100644
(file)
--- a/
yaffs_tagscompat.c
+++ b/
yaffs_tagscompat.c
@@
-10,7
+10,7
@@
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
- * $Id: yaffs_tagscompat.c,v 1.
6 2005-08-11 02:33:03
marty Exp $
+ * $Id: yaffs_tagscompat.c,v 1.
8 2005-11-29 20:54:32
marty Exp $
*/
#include "yaffs_guts.h"
*/
#include "yaffs_guts.h"
@@
-213,13
+213,13
@@
static int yaffs_ReadChunkFromNAND(struct yaffs_DeviceStruct *dev,
if (eccResult1 > 0) {
T(YAFFS_TRACE_ERROR,
(TSTR
if (eccResult1 > 0) {
T(YAFFS_TRACE_ERROR,
(TSTR
- ("**>>ecc error fix performed on chunk %d:0"
+ ("**>>
yaffs
ecc error fix performed on chunk %d:0"
TENDSTR), chunkInNAND));
dev->eccFixed++;
} else if (eccResult1 < 0) {
T(YAFFS_TRACE_ERROR,
(TSTR
TENDSTR), chunkInNAND));
dev->eccFixed++;
} else if (eccResult1 < 0) {
T(YAFFS_TRACE_ERROR,
(TSTR
- ("**>>ecc error unfixed on chunk %d:0"
+ ("**>>
yaffs
ecc error unfixed on chunk %d:0"
TENDSTR), chunkInNAND));
dev->eccUnfixed++;
}
TENDSTR), chunkInNAND));
dev->eccUnfixed++;
}
@@
-227,13
+227,13
@@
static int yaffs_ReadChunkFromNAND(struct yaffs_DeviceStruct *dev,
if (eccResult2 > 0) {
T(YAFFS_TRACE_ERROR,
(TSTR
if (eccResult2 > 0) {
T(YAFFS_TRACE_ERROR,
(TSTR
- ("**>>ecc error fix performed on chunk %d:1"
+ ("**>>
yaffs
ecc error fix performed on chunk %d:1"
TENDSTR), chunkInNAND));
dev->eccFixed++;
} else if (eccResult2 < 0) {
T(YAFFS_TRACE_ERROR,
(TSTR
TENDSTR), chunkInNAND));
dev->eccFixed++;
} else if (eccResult2 < 0) {
T(YAFFS_TRACE_ERROR,
(TSTR
- ("**>>ecc error unfixed on chunk %d:1"
+ ("**>>
yaffs
ecc error unfixed on chunk %d:1"
TENDSTR), chunkInNAND));
dev->eccUnfixed++;
}
TENDSTR), chunkInNAND));
dev->eccUnfixed++;
}
@@
-262,24
+262,24
@@
static int yaffs_ReadChunkFromNAND(struct yaffs_DeviceStruct *dev,
if (nspare.eccres1 > 0) {
T(YAFFS_TRACE_ERROR,
(TSTR
if (nspare.eccres1 > 0) {
T(YAFFS_TRACE_ERROR,
(TSTR
- ("**>>ecc error fix performed on chunk %d:0"
+ ("**>>
mtd
ecc error fix performed on chunk %d:0"
TENDSTR), chunkInNAND));
} else if (nspare.eccres1 < 0) {
T(YAFFS_TRACE_ERROR,
(TSTR
TENDSTR), chunkInNAND));
} else if (nspare.eccres1 < 0) {
T(YAFFS_TRACE_ERROR,
(TSTR
- ("**>>ecc error unfixed on chunk %d:0"
+ ("**>>
mtd
ecc error unfixed on chunk %d:0"
TENDSTR), chunkInNAND));
}
if (nspare.eccres2 > 0) {
T(YAFFS_TRACE_ERROR,
(TSTR
TENDSTR), chunkInNAND));
}
if (nspare.eccres2 > 0) {
T(YAFFS_TRACE_ERROR,
(TSTR
- ("**>>ecc error fix performed on chunk %d:1"
+ ("**>>
mtd
ecc error fix performed on chunk %d:1"
TENDSTR), chunkInNAND));
} else if (nspare.eccres2 < 0) {
T(YAFFS_TRACE_ERROR,
(TSTR
TENDSTR), chunkInNAND));
} else if (nspare.eccres2 < 0) {
T(YAFFS_TRACE_ERROR,
(TSTR
- ("**>>ecc error unfixed on chunk %d:1"
+ ("**>>
mtd
ecc error unfixed on chunk %d:1"
TENDSTR), chunkInNAND));
}
TENDSTR), chunkInNAND));
}
@@
-455,20
+455,22
@@
int yaffs_TagsCompatabilityReadChunkWithTagsFromNAND(yaffs_Device * dev,
int deleted =
(yaffs_CountBits(spare.pageStatus) < 7) ? 1 : 0;
int deleted =
(yaffs_CountBits(spare.pageStatus) < 7) ? 1 : 0;
- yaffs_GetTagsFromSpare(dev, &spare, &tags);
-
eTags->chunkDeleted = deleted;
eTags->chunkDeleted = deleted;
- eTags->objectId = tags.objectId;
- eTags->chunkId = tags.chunkId;
- eTags->byteCount = tags.byteCount;
- eTags->serialNumber = tags.serialNumber;
eTags->eccResult = eccResult;
eTags->blockBad = 0; /* We're reading it */
/* therefore it is not a bad block */
eTags->eccResult = eccResult;
eTags->blockBad = 0; /* We're reading it */
/* therefore it is not a bad block */
-
eTags->chunkUsed =
(memcmp(&spareFF, &spare, sizeof(spareFF)) !=
0) ? 1 : 0;
eTags->chunkUsed =
(memcmp(&spareFF, &spare, sizeof(spareFF)) !=
0) ? 1 : 0;
+
+ if (eTags->chunkUsed) {
+ yaffs_GetTagsFromSpare(dev, &spare, &tags);
+
+ eTags->objectId = tags.objectId;
+ eTags->chunkId = tags.chunkId;
+ eTags->byteCount = tags.byteCount;
+ eTags->serialNumber = tags.serialNumber;
+ }
}
return YAFFS_OK;
}
return YAFFS_OK;