Commit a6a8bef7 authored by David Woodhouse's avatar David Woodhouse

[JFFS2] Preallocate raw_node_refs in a couple of missing places in scan

Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
parent 2ebf09c2
...@@ -67,8 +67,11 @@ static inline uint32_t EMPTY_SCAN_SIZE(uint32_t sector_size) { ...@@ -67,8 +67,11 @@ static inline uint32_t EMPTY_SCAN_SIZE(uint32_t sector_size) {
static int file_dirty(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb) static int file_dirty(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb)
{ {
int ret = jffs2_scan_dirty_space(c, jeb, jeb->free_size); int ret;
if (ret)
if ((ret = jffs2_prealloc_raw_node_refs(c, jeb, 1)))
return ret;
if ((ret = jffs2_scan_dirty_space(c, jeb, jeb->free_size)))
return ret; return ret;
/* Turned wasted size into dirty, since we apparently /* Turned wasted size into dirty, since we apparently
think it's recoverable now. */ think it's recoverable now. */
...@@ -559,6 +562,8 @@ static int jffs2_scan_eraseblock (struct jffs2_sb_info *c, struct jffs2_eraseblo ...@@ -559,6 +562,8 @@ static int jffs2_scan_eraseblock (struct jffs2_sb_info *c, struct jffs2_eraseblo
if (ofs) { if (ofs) {
D1(printk(KERN_DEBUG "Free space at %08x ends at %08x\n", jeb->offset, D1(printk(KERN_DEBUG "Free space at %08x ends at %08x\n", jeb->offset,
jeb->offset + ofs)); jeb->offset + ofs));
if ((err = jffs2_prealloc_raw_node_refs(c, jeb, 1)))
return err;
if ((err = jffs2_scan_dirty_space(c, jeb, ofs))) if ((err = jffs2_scan_dirty_space(c, jeb, ofs)))
return err; return err;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment