/*
* YAFFS: Yet Another Flash File System. A NAND-flash specific file system.
*
- * Copyright (C) 2002-2010 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)
{
+#ifdef CONFIG_YAFFS_NO_YAFFS1
+ return YAFFS_FAIL;
+#else
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);
"yaffs1_scan starts intstartblk %d intendblk %d...",
dev->internal_start_block, dev->internal_end_block);
- chunk_data = yaffs_get_temp_buffer(dev, __LINE__);
+ chunk_data = yaffs_get_temp_buffer(dev);
dev->seq_number = YAFFS_LOWEST_SEQUENCE_NUMBER;
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.
}
}
- yaffs_release_temp_buffer(dev, chunk_data, __LINE__);
+ yaffs_release_temp_buffer(dev, chunk_data);
if (alloc_failed)
return YAFFS_FAIL;
yaffs_trace(YAFFS_TRACE_SCAN, "yaffs1_scan ends");
return YAFFS_OK;
+#endif
}