/*
* YAFFS: Yet Another Flash File System. A NAND-flash specific file system.
*
- * Copyright (C) 2002-2011 Aleph One Ltd.
- * for Toby Churchill Ltd and Brightstar Engineering
+ * Copyright (C) 2002-2018 Aleph One Ltd.
*
* Created by Charles Manning <charles@aleph1.co.uk>
*
int yaffs1_scan(struct yaffs_dev *dev)
{
struct yaffs_ext_tags tags;
- int blk;
+ u32 blk;
int result;
int chunk;
- int c;
+ u32 c;
int deleted;
enum yaffs_block_state state;
LIST_HEAD(hard_list);
result = yaffs_rd_chunk_tags_nand(dev, chunk, NULL,
&tags);
+ if (result != YAFFS_OK)
+ continue;
/* Let's have a good look at this chunk... */
if (tags.ecc_result == YAFFS_ECC_RESULT_UNFIXED ||
if (in &&
in->variant_type ==
YAFFS_OBJECT_TYPE_FILE &&
- in->variant.file_variant.scanned_size <
+ in->variant.file_variant.stored_size <
endpos) {
- in->variant.file_variant.scanned_size =
+ in->variant.file_variant.stored_size =
endpos;
if (!dev->param.use_header_file_size) {
in->variant.
file_variant.file_size =
in->variant.
- file_variant.scanned_size;
+ file_variant.stored_size;
}
}
case YAFFS_OBJECT_TYPE_FILE:
if (dev->param.
use_header_file_size)
-
in->variant.
- file_variant.file_size
- = oh->file_size;
-
+ file_variant.file_size
+ = yaffs_oh_to_size(dev, oh, 0);
break;
case YAFFS_OBJECT_TYPE_HARDLINK:
in->variant.