diff options
Diffstat (limited to 'fs/jffs2')
-rw-r--r-- | fs/jffs2/wbuf.c | 28 |
1 files changed, 8 insertions, 20 deletions
diff --git a/fs/jffs2/wbuf.c b/fs/jffs2/wbuf.c index 916c87d3393b..76d4c361ef1f 100644 --- a/fs/jffs2/wbuf.c +++ b/fs/jffs2/wbuf.c | |||
@@ -233,10 +233,7 @@ static void jffs2_wbuf_recover(struct jffs2_sb_info *c) | |||
233 | } | 233 | } |
234 | 234 | ||
235 | /* Do the read... */ | 235 | /* Do the read... */ |
236 | if (jffs2_cleanmarker_oob(c)) | 236 | ret = c->mtd->read(c->mtd, start, c->wbuf_ofs - start, &retlen, buf); |
237 | ret = c->mtd->read_ecc(c->mtd, start, c->wbuf_ofs - start, &retlen, buf, NULL, c->oobinfo); | ||
238 | else | ||
239 | ret = c->mtd->read(c->mtd, start, c->wbuf_ofs - start, &retlen, buf); | ||
240 | 237 | ||
241 | if (ret == -EBADMSG && retlen == c->wbuf_ofs - start) { | 238 | if (ret == -EBADMSG && retlen == c->wbuf_ofs - start) { |
242 | /* ECC recovered */ | 239 | /* ECC recovered */ |
@@ -290,16 +287,13 @@ static void jffs2_wbuf_recover(struct jffs2_sb_info *c) | |||
290 | if (breakme++ == 20) { | 287 | if (breakme++ == 20) { |
291 | printk(KERN_NOTICE "Faking write error at 0x%08x\n", ofs); | 288 | printk(KERN_NOTICE "Faking write error at 0x%08x\n", ofs); |
292 | breakme = 0; | 289 | breakme = 0; |
293 | c->mtd->write_ecc(c->mtd, ofs, towrite, &retlen, | 290 | c->mtd->write(c->mtd, ofs, towrite, &retlen, |
294 | brokenbuf, NULL, c->oobinfo); | 291 | brokenbuf); |
295 | ret = -EIO; | 292 | ret = -EIO; |
296 | } else | 293 | } else |
297 | #endif | 294 | #endif |
298 | if (jffs2_cleanmarker_oob(c)) | 295 | ret = c->mtd->write(c->mtd, ofs, towrite, &retlen, |
299 | ret = c->mtd->write_ecc(c->mtd, ofs, towrite, &retlen, | 296 | rewrite_buf); |
300 | rewrite_buf, NULL, c->oobinfo); | ||
301 | else | ||
302 | ret = c->mtd->write(c->mtd, ofs, towrite, &retlen, rewrite_buf); | ||
303 | 297 | ||
304 | if (ret || retlen != towrite) { | 298 | if (ret || retlen != towrite) { |
305 | /* Argh. We tried. Really we did. */ | 299 | /* Argh. We tried. Really we did. */ |
@@ -457,15 +451,12 @@ static int __jffs2_flush_wbuf(struct jffs2_sb_info *c, int pad) | |||
457 | if (breakme++ == 20) { | 451 | if (breakme++ == 20) { |
458 | printk(KERN_NOTICE "Faking write error at 0x%08x\n", c->wbuf_ofs); | 452 | printk(KERN_NOTICE "Faking write error at 0x%08x\n", c->wbuf_ofs); |
459 | breakme = 0; | 453 | breakme = 0; |
460 | c->mtd->write_ecc(c->mtd, c->wbuf_ofs, c->wbuf_pagesize, | 454 | c->mtd->write(c->mtd, c->wbuf_ofs, c->wbuf_pagesize, &retlen, |
461 | &retlen, brokenbuf, NULL, c->oobinfo); | 455 | brokenbuf); |
462 | ret = -EIO; | 456 | ret = -EIO; |
463 | } else | 457 | } else |
464 | #endif | 458 | #endif |
465 | 459 | ||
466 | if (jffs2_cleanmarker_oob(c)) | ||
467 | ret = c->mtd->write_ecc(c->mtd, c->wbuf_ofs, c->wbuf_pagesize, &retlen, c->wbuf, NULL, c->oobinfo); | ||
468 | else | ||
469 | ret = c->mtd->write(c->mtd, c->wbuf_ofs, c->wbuf_pagesize, &retlen, c->wbuf); | 460 | ret = c->mtd->write(c->mtd, c->wbuf_ofs, c->wbuf_pagesize, &retlen, c->wbuf); |
470 | 461 | ||
471 | if (ret || retlen != c->wbuf_pagesize) { | 462 | if (ret || retlen != c->wbuf_pagesize) { |
@@ -800,10 +791,7 @@ int jffs2_flash_read(struct jffs2_sb_info *c, loff_t ofs, size_t len, size_t *re | |||
800 | 791 | ||
801 | /* Read flash */ | 792 | /* Read flash */ |
802 | down_read(&c->wbuf_sem); | 793 | down_read(&c->wbuf_sem); |
803 | if (jffs2_cleanmarker_oob(c)) | 794 | ret = c->mtd->read(c->mtd, ofs, len, retlen, buf); |
804 | ret = c->mtd->read_ecc(c->mtd, ofs, len, retlen, buf, NULL, c->oobinfo); | ||
805 | else | ||
806 | ret = c->mtd->read(c->mtd, ofs, len, retlen, buf); | ||
807 | 795 | ||
808 | if ( (ret == -EBADMSG) && (*retlen == len) ) { | 796 | if ( (ret == -EBADMSG) && (*retlen == len) ) { |
809 | printk(KERN_WARNING "mtd->read(0x%zx bytes from 0x%llx) returned ECC error\n", | 797 | printk(KERN_WARNING "mtd->read(0x%zx bytes from 0x%llx) returned ECC error\n", |