···168168 mutex_lock(&c->erase_free_sem);169169 spin_lock(&c->erase_completion_lock);170170 list_move_tail(&jeb->list, &c->erase_complete_list);171171+ /* Wake the GC thread to mark them clean */172172+ jffs2_garbage_collect_trigger(c);171173 spin_unlock(&c->erase_completion_lock);172174 mutex_unlock(&c->erase_free_sem);173173- /* Ensure that kupdated calls us again to mark them clean */174174- jffs2_erase_pending_trigger(c);175175 wake_up(&c->erase_wait);176176}177177···491491492492refile:493493 /* Stick it back on the list from whence it came and come back later */494494- jffs2_erase_pending_trigger(c);495494 mutex_lock(&c->erase_free_sem);496495 spin_lock(&c->erase_completion_lock);496496+ jffs2_garbage_collect_trigger(c);497497 list_move(&jeb->list, &c->erase_complete_list);498498 spin_unlock(&c->erase_completion_lock);499499 mutex_unlock(&c->erase_free_sem);
···229229 ejeb = list_entry(c->erasable_list.next, struct jffs2_eraseblock, list);230230 list_move_tail(&ejeb->list, &c->erase_pending_list);231231 c->nr_erasing_blocks++;232232- jffs2_erase_pending_trigger(c);232232+ jffs2_garbage_collect_trigger(c);233233 D1(printk(KERN_DEBUG "jffs2_find_nextblock: Triggering erase of erasable block at 0x%08x\n",234234 ejeb->offset));235235 }···625625 D1(printk(KERN_DEBUG "...and adding to erase_pending_list\n"));626626 list_add_tail(&jeb->list, &c->erase_pending_list);627627 c->nr_erasing_blocks++;628628- jffs2_erase_pending_trigger(c);628628+ jffs2_garbage_collect_trigger(c);629629 } else {630630 /* Sometimes, however, we leave it elsewhere so it doesn't get631631 immediately reused, and we spread the load a bit. */
+3-1
fs/jffs2/scan.c
···260260 ret = -EIO;261261 goto out;262262 }263263- jffs2_erase_pending_trigger(c);263263+ spin_lock(&c->erase_completion_lock);264264+ jffs2_garbage_collect_trigger(c);265265+ spin_unlock(&c->erase_completion_lock);264266 }265267 ret = 0;266268 out:
+3-3
fs/jffs2/wbuf.c
···121121 D1(printk(KERN_DEBUG "...and adding to erase_pending_list\n"));122122 list_add_tail(&jeb->list, &c->erase_pending_list);123123 c->nr_erasing_blocks++;124124- jffs2_erase_pending_trigger(c);124124+ jffs2_garbage_collect_trigger(c);125125 } else {126126 /* Sometimes, however, we leave it elsewhere so it doesn't get127127 immediately reused, and we spread the load a bit. */···152152 D1(printk("Refiling block at %08x to erase_pending_list\n", jeb->offset));153153 list_add(&jeb->list, &c->erase_pending_list);154154 c->nr_erasing_blocks++;155155- jffs2_erase_pending_trigger(c);155155+ jffs2_garbage_collect_trigger(c);156156 }157157158158 if (!jffs2_prealloc_raw_node_refs(c, jeb, 1)) {···543543 D1(printk(KERN_DEBUG "Failing block at %08x is now empty. Moving to erase_pending_list\n", jeb->offset));544544 list_move(&jeb->list, &c->erase_pending_list);545545 c->nr_erasing_blocks++;546546- jffs2_erase_pending_trigger(c);546546+ jffs2_garbage_collect_trigger(c);547547 }548548549549 jffs2_dbg_acct_sanity_check_nolock(c, jeb);