diff options
-rw-r--r-- | fs/exec.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -641,8 +641,10 @@ static inline int de_thread(struct task_struct *tsk) | |||
641 | * before we can safely let the old group leader die. | 641 | * before we can safely let the old group leader die. |
642 | */ | 642 | */ |
643 | sig->real_timer.data = (unsigned long)current; | 643 | sig->real_timer.data = (unsigned long)current; |
644 | spin_unlock_irq(lock); | ||
644 | if (del_timer_sync(&sig->real_timer)) | 645 | if (del_timer_sync(&sig->real_timer)) |
645 | add_timer(&sig->real_timer); | 646 | add_timer(&sig->real_timer); |
647 | spin_lock_irq(lock); | ||
646 | } | 648 | } |
647 | while (atomic_read(&sig->count) > count) { | 649 | while (atomic_read(&sig->count) > count) { |
648 | sig->group_exit_task = current; | 650 | sig->group_exit_task = current; |
@@ -654,7 +656,6 @@ static inline int de_thread(struct task_struct *tsk) | |||
654 | } | 656 | } |
655 | sig->group_exit_task = NULL; | 657 | sig->group_exit_task = NULL; |
656 | sig->notify_count = 0; | 658 | sig->notify_count = 0; |
657 | sig->real_timer.data = (unsigned long)current; | ||
658 | spin_unlock_irq(lock); | 659 | spin_unlock_irq(lock); |
659 | 660 | ||
660 | /* | 661 | /* |