aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Woodhouse <dwmw2@infradead.org>2006-05-28 19:41:11 -0400
committerDavid Woodhouse <dwmw2@infradead.org>2006-05-28 19:41:11 -0400
commita6a8bef722875a95bb73e6de7da924a8d417b52c (patch)
tree4bdb7461ad785b8e24e5bb65f4bde9448e4fae25
parent2ebf09c2491433a499e0ae7723d04e9e810afa84 (diff)
[JFFS2] Preallocate raw_node_refs in a couple of missing places in scan
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
-rw-r--r--fs/jffs2/scan.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/fs/jffs2/scan.c b/fs/jffs2/scan.c
index 3fb0e7e82cf2..42c1ff21d352 100644
--- a/fs/jffs2/scan.c
+++ b/fs/jffs2/scan.c
@@ -67,8 +67,11 @@ static inline uint32_t EMPTY_SCAN_SIZE(uint32_t sector_size) {
67 67
68static int file_dirty(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb) 68static int file_dirty(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb)
69{ 69{
70 int ret = jffs2_scan_dirty_space(c, jeb, jeb->free_size); 70 int ret;
71 if (ret) 71
72 if ((ret = jffs2_prealloc_raw_node_refs(c, jeb, 1)))
73 return ret;
74 if ((ret = jffs2_scan_dirty_space(c, jeb, jeb->free_size)))
72 return ret; 75 return ret;
73 /* Turned wasted size into dirty, since we apparently 76 /* Turned wasted size into dirty, since we apparently
74 think it's recoverable now. */ 77 think it's recoverable now. */
@@ -559,6 +562,8 @@ static int jffs2_scan_eraseblock (struct jffs2_sb_info *c, struct jffs2_eraseblo
559 if (ofs) { 562 if (ofs) {
560 D1(printk(KERN_DEBUG "Free space at %08x ends at %08x\n", jeb->offset, 563 D1(printk(KERN_DEBUG "Free space at %08x ends at %08x\n", jeb->offset,
561 jeb->offset + ofs)); 564 jeb->offset + ofs));
565 if ((err = jffs2_prealloc_raw_node_refs(c, jeb, 1)))
566 return err;
562 if ((err = jffs2_scan_dirty_space(c, jeb, ofs))) 567 if ((err = jffs2_scan_dirty_space(c, jeb, ofs)))
563 return err; 568 return err;
564 } 569 }