Explorar o código

[JFFS2] Fix NOR only compile

Fix the bug that caouses problems when compiling for NOR.
We read  a newly erased block so we don't need to check ECC.

Define jffs2_is_writebuffered as zero if there is no wbuf.

Signed-off-by: Artem B. Bityuckiy <dedekind@infradead.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Artem B. Bityuckiy %!s(int64=20) %!d(string=hai) anos
pai
achega
8cd7921667
Modificáronse 2 ficheiros con 5 adicións e 7 borrados
  1. 2 5
      fs/jffs2/erase.c
  2. 3 2
      fs/jffs2/os-linux.h

+ 2 - 5
fs/jffs2/erase.c

@@ -7,7 +7,7 @@
  *
  * For licensing information, see the file 'LICENCE' in this directory.
  *
- * $Id: erase.c,v 1.75 2005/04/05 12:51:54 dedekind Exp $
+ * $Id: erase.c,v 1.76 2005/05/03 15:11:40 dedekind Exp $
  *
  */
 
@@ -332,10 +332,7 @@ static void jffs2_mark_erased_block(struct jffs2_sb_info *c, struct jffs2_eraseb
 
 			bad_offset = ofs;
 
-			if (!jffs2_is_writebuffered(c) || !jffs2_cleanmarker_oob(c))
-				ret = c->mtd->read(c->mtd, ofs, readlen, &retlen, ebuf);
-			else
-				ret = c->mtd->read_ecc(c->mtd, ofs, readlen, &retlen, ebuf, NULL, c->oobinfo);
+			ret = c->mtd->read(c->mtd, ofs, readlen, &retlen, ebuf);
 
 			if (ret) {
 				printk(KERN_WARNING "Read of newly-erased block at 0x%08x failed: %d. Putting on bad_list\n", ofs, ret);

+ 3 - 2
fs/jffs2/os-linux.h

@@ -7,7 +7,7 @@
  *
  * For licensing information, see the file 'LICENCE' in this directory.
  *
- * $Id: os-linux.h,v 1.54 2005/02/09 09:23:53 pavlov Exp $
+ * $Id: os-linux.h,v 1.56 2005/05/03 15:19:00 dedekind Exp $
  *
  */
 
@@ -99,11 +99,11 @@ static inline void jffs2_init_inode_info(struct jffs2_inode_info *f)
 
 
 #define jffs2_is_readonly(c) (OFNI_BS_2SFFJ(c)->s_flags & MS_RDONLY)
-#define jffs2_is_writebuffered(c) (c->wbuf != NULL)
 
 #ifndef CONFIG_JFFS2_FS_WRITEBUFFER
 #define SECTOR_ADDR(x) ( ((unsigned long)(x) & ~(c->sector_size-1)) )
 #define jffs2_can_mark_obsolete(c) (1)
+#define jffs2_is_writebuffered(c) (0)
 #define jffs2_cleanmarker_oob(c) (0)
 #define jffs2_write_nand_cleanmarker(c,jeb) (-EIO)
 
@@ -125,6 +125,7 @@ static inline void jffs2_init_inode_info(struct jffs2_inode_info *f)
 
 #else /* NAND and/or ECC'd NOR support present */
 
+#define jffs2_is_writebuffered(c) (c->wbuf != NULL)
 #define SECTOR_ADDR(x) ( ((unsigned long)(x) / (unsigned long)(c->sector_size)) * c->sector_size )
 #define jffs2_can_mark_obsolete(c) ((c->mtd->type == MTD_NORFLASH && !(c->mtd->flags & MTD_ECC)) || c->mtd->type == MTD_RAM)
 #define jffs2_cleanmarker_oob(c) (c->mtd->type == MTD_NANDFLASH)