Skip to content

Commit

Permalink
[JFFS2] Fix cleanup in case of GC-Task not started
Browse files Browse the repository at this point in the history
Do not call wait_for_completion, when the gc task is not there. 
Prevent an oops when the gc thread was not started.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
  • Loading branch information
Thomas Gleixner authored and Thomas Gleixner committed May 23, 2005
1 parent fb4a90b commit e2d48b1
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions fs/jffs2/background.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
*
* For licensing information, see the file 'LICENCE' in this directory.
*
* $Id: background.c,v 1.52 2005/05/19 16:18:08 gleixner Exp $
* $Id: background.c,v 1.54 2005/05/20 21:37:12 gleixner Exp $
*
*/

Expand Down Expand Up @@ -56,13 +56,16 @@ int jffs2_start_garbage_collect_thread(struct jffs2_sb_info *c)

void jffs2_stop_garbage_collect_thread(struct jffs2_sb_info *c)
{
int wait = 0;
spin_lock(&c->erase_completion_lock);
if (c->gc_task) {
D1(printk(KERN_DEBUG "jffs2: Killing GC task %d\n", c->gc_task->pid));
send_sig(SIGKILL, c->gc_task, 1);
wait = 1;
}
spin_unlock(&c->erase_completion_lock);
wait_for_completion(&c->gc_thread_exit);
if (wait)
wait_for_completion(&c->gc_thread_exit);
}

static int jffs2_garbage_collect_thread(void *_c)
Expand Down

0 comments on commit e2d48b1

Please sign in to comment.