---
package/system/mtd/src/jffs2.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/package/system/mtd/src/jffs2.c b/package/system/mtd/src/jffs2.c
index b432f64ac0..5bf3eec328 100644
--- a/package/system/mtd/src/jffs2.c
+++ b/package/system/mtd/src/jffs2.c
@@ -308,6 +308,16 @@ int mtd_write_jffs2(const char *mtd, const char *filename,
const char *dir)
for(;;) {
struct jffs2_unknown_node *node = (struct jffs2_unknown_node *)
buf;
+ while (mtd_block_is_bad(outfd, mtdofs) && (mtdofs < mtdsize)) {
+ if (!quiet)
+ fprintf(stderr, "\nSkipping bad block at 0x%08x
", mtdofs);
+
+ mtdofs += erasesize;
+
+ /* Move the file pointer along over the bad block. */
+ lseek(outfd, erasesize, SEEK_CUR);
+ }
+
if (read(outfd, buf, erasesize) != erasesize) {
fdeof = 1;
break;
--
2.11.0
_______________________________________________
openwrt-devel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/openwrt-devel