jffs2_do_reserve_space

David Woodhouse dwmw2 at infradead.org
Thu Jul 25 13:04:41 EDT 2002


Can you try this?

Index: fs/jffs2/scan.c
===================================================================
RCS file: /home/cvs/mtd/fs/jffs2/scan.c,v
retrieving revision 1.78
diff -u -p -r1.78 scan.c
--- fs/jffs2/scan.c	2 Jul 2002 22:48:24 -0000	1.78
+++ fs/jffs2/scan.c	25 Jul 2002 17:04:28 -0000
@@ -322,6 +322,16 @@ static int jffs2_scan_eraseblock (struct
 			continue;
 		}
 
+		if (ofs + node.totlen > jeb->offset + c->sector_size) {
+			/* Eep. Node goes over the end of the erase block. */
+			printk(KERN_WARNING "Node at 0x%08x with length 0x%08x would run over the end of the erase block\n",
+			       ofs, node.totlen);
+			printk(KERN_WARNING "Perhaps the file system was created with the wrong erase size?");
+			DIRTY_SPACE(4);
+			ofs += 4;
+			continue;
+		}
+
 		if (!(node.nodetype & JFFS2_NODE_ACCURATE)) {
 			/* Wheee. This is an obsoleted node */
 			D2(printk(KERN_DEBUG "Node at 0x%08x is obsolete. Skipping\n", ofs));


--
dwmw2






More information about the linux-mtd mailing list