Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 27924
b: refs/heads/master
c: fc6612f
h: refs/heads/master
v: v3
  • Loading branch information
David Woodhouse committed Jun 18, 2006
1 parent 0178de8 commit d8ba400
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2ba72cb754bb091bb24a44e9682f7105110f7f38
refs/heads/master: fc6612f627c697b348a4ef64f16fb373d86dbd76
26 changes: 22 additions & 4 deletions trunk/fs/jffs2/nodemgmt.c
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,8 @@ static int jffs2_do_reserve_space(struct jffs2_sb_info *c, uint32_t minsize,
}
} else {
if (jeb && minsize > jeb->free_size) {
uint32_t waste;

/* Skip the end of this block and file it as having some dirty space */
/* If there's a pending write to it, flush now */

Expand All @@ -329,10 +331,26 @@ static int jffs2_do_reserve_space(struct jffs2_sb_info *c, uint32_t minsize,
goto restart;
}

c->wasted_size += jeb->free_size;
c->free_size -= jeb->free_size;
jeb->wasted_size += jeb->free_size;
jeb->free_size = 0;
spin_unlock(&c->erase_completion_lock);

ret = jffs2_prealloc_raw_node_refs(c, jeb, 1);
if (ret)
return ret;
/* Just lock it again and continue. Nothing much can change because
we hold c->alloc_sem anyway. In fact, it's not entirely clear why
we hold c->erase_completion_lock in the majority of this function...
but that's a question for another (more caffeine-rich) day. */
spin_lock(&c->erase_completion_lock);

waste = jeb->free_size;
jffs2_link_node_ref(c, jeb,
(jeb->offset + c->sector_size - waste) | REF_OBSOLETE,
waste, NULL);
/* FIXME: that made it count as dirty. Convert to wasted */
jeb->dirty_size -= waste;
c->dirty_size -= waste;
jeb->wasted_size += waste;
c->wasted_size += waste;

jffs2_close_nextblock(c, jeb);
jeb = NULL;
Expand Down

0 comments on commit d8ba400

Please sign in to comment.