jffs2_do_reserve_space

David Woodhouse dwmw2 at infradead.org
Thu Jul 25 13:16:50 EDT 2002


dwmw2 at infradead.org said:
>  Can you try this?

Or this version if you're using the stable branch...

As I said in private mail, I suspect you've written your jffs2 image to the 
flash 0x40 bytes out of place, and the printk in this sanity check isn't 
actually correct for you, although it will be for most people who trigger 
it.

Index: scan.c
===================================================================
RCS file: /home/cvs/mtd/fs/jffs2/scan.c,v
retrieving revision 1.51.2.2
diff -u -p -r1.51.2.2 scan.c
--- scan.c	23 Feb 2002 13:34:31 -0000	1.51.2.2
+++ scan.c	25 Jul 2002 17:15:16 -0000
@@ -261,6 +261,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;
+		}
+
 		switch(node.nodetype | JFFS2_NODE_ACCURATE) {
 		case JFFS2_NODETYPE_INODE:
 			err = jffs2_scan_inode_node(c, jeb, &ofs);


--
dwmw2






More information about the linux-mtd mailing list