-
- yaffs_ECCResult eccResult = YAFFS_ECC_RESULT_NO_ERROR;
-
- if (pt->t.sequenceNumber != 0xFFFFFFFF) {
- /* Page is in use */
-#ifndef YAFFS_IGNORE_TAGS_ECC
- {
- yaffs_ECCOther ecc;
- int result;
- yaffs_ECCCalculateOther((unsigned char *)&pt->t,
- sizeof
- (yaffs_PackedTags2TagsPart),
- &ecc);
- result =
- yaffs_ECCCorrectOther((unsigned char *)&pt->t,
- sizeof
- (yaffs_PackedTags2TagsPart),
- &pt->ecc, &ecc);
- switch (result) {
- case 0:
- eccResult = YAFFS_ECC_RESULT_NO_ERROR;
- break;
- case 1:
- eccResult = YAFFS_ECC_RESULT_FIXED;
- break;
- case -1:
- eccResult = YAFFS_ECC_RESULT_UNFIXED;
- break;
- default:
- eccResult = YAFFS_ECC_RESULT_UNKNOWN;
- }
+ enum yaffs_ecc_result ecc_result = YAFFS_ECC_RESULT_NO_ERROR;
+
+ if (pt->t.seq_number != 0xFFFFFFFF && tags_ecc) {
+ /* Chunk is in use and we need to do ECC */
+
+ struct yaffs_ecc_other ecc;
+ int result;
+ yaffs_ecc_calc_other((unsigned char *)&pt->t,
+ sizeof(struct yaffs_packed_tags2_tags_only),
+ &ecc);
+ result =
+ yaffs_ecc_correct_other((unsigned char *)&pt->t,
+ sizeof(struct yaffs_packed_tags2_tags_only),
+ &pt->ecc, &ecc);
+ switch (result) {
+ case 0:
+ ecc_result = YAFFS_ECC_RESULT_NO_ERROR;
+ break;
+ case 1:
+ ecc_result = YAFFS_ECC_RESULT_FIXED;
+ break;
+ case -1:
+ ecc_result = YAFFS_ECC_RESULT_UNFIXED;
+ break;
+ default:
+ ecc_result = YAFFS_ECC_RESULT_UNKNOWN;