
Hello Mark,
please fix Tom rinis mail address globally for your patchset into
Tom Rini trini@konsulko.com
I fixed it for my response manually, thanks!
BTW: You can use patman for creating patches/patchset. Look into u-boot:tools/patman
Am 29.06.2015 um 07:02 schrieb Mark Tomlinson:
If the flash is slow, reading less from the flash into buffers makes the process faster.
Signed-off-by: Mark Tomlinson mark.tomlinson@alliedtelesis.co.nz
fs/jffs2/jffs2_1pass.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-)
Reviewed-by: Heiko Schocher hs@denx.de
bye, Heiko
diff --git a/fs/jffs2/jffs2_1pass.c b/fs/jffs2/jffs2_1pass.c index 80210be..10bd7be 100644 --- a/fs/jffs2/jffs2_1pass.c +++ b/fs/jffs2/jffs2_1pass.c @@ -1493,7 +1493,7 @@ jffs2_1pass_build_lists(struct part_info * part) u32 counterF = 0; u32 counterN = 0; u32 max_totlen = 0;
- u32 buf_size = DEFAULT_EMPTY_SCAN_SIZE;
u32 buf_size; char *buf;
nr_sectors = lldiv(part->size, part->sector_size);
@@ -1505,7 +1505,7 @@ jffs2_1pass_build_lists(struct part_info * part) /* if we are building a list we need to refresh the cache. */ jffs_init_1pass_list(part); pL = (struct b_lists *)part->jffs2_priv;
- buf = malloc(buf_size);
buf = malloc(DEFAULT_EMPTY_SCAN_SIZE); puts ("Scanning JFFS2 FS: ");
/* start at the beginning of the partition */
@@ -1521,6 +1521,8 @@ jffs2_1pass_build_lists(struct part_info * part) int ret; #endif
/* Set buf_size to maximum length */
buf_size = DEFAULT_EMPTY_SCAN_SIZE;
WATCHDOG_RESET();
#ifdef CONFIG_JFFS2_SUMMARY
@@ -1595,6 +1597,10 @@ jffs2_1pass_build_lists(struct part_info * part)
ofs += sector_ofs; prevofs = ofs - 1;
/* Set buf_size down to the minimum size required.
* This prevents reading in chunks of flash data unnecessarily.
*/
buf_size = sizeof(union jffs2_node_union);
scan_more: while (ofs < sector_ofs + part->sector_size) {
@@ -1675,13 +1681,18 @@ jffs2_1pass_build_lists(struct part_info * part) case JFFS2_NODETYPE_INODE: if (buf_ofs + buf_len < ofs + sizeof(struct jffs2_raw_inode)) {
buf_len = min_t(uint32_t,
sizeof(struct jffs2_raw_inode),
sector_ofs +
part->sector_size -
ofs); get_fl_mem((u32)part->offset + ofs, buf_len, buf); buf_ofs = ofs; node = (void *)buf; }
if (!inode_crc((struct jffs2_raw_inode *) node))
break;
if (!inode_crc((struct jffs2_raw_inode *)node))
break; if (insert_node(&pL->frag, (u32) part->offset + ofs) == NULL) {
@@ -1698,6 +1709,11 @@ jffs2_1pass_build_lists(struct part_info * part) ((struct jffs2_raw_dirent *) node)->nsize) {
buf_len = min_t(uint32_t,
node->totlen,
sector_ofs +
part->sector_size -
ofs); get_fl_mem((u32)part->offset + ofs, buf_len, buf); buf_ofs = ofs;