[OpenWrt-Devel] [PATCH] mtd: skip bad blocks when writing
Lev
leventelist at gmail.com
Fri May 18 11:25:30 EDT 2018
---
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
openwrt-devel at lists.openwrt.org
http://lists.infradead.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list