diff options
author | Oleg Nesterov <oleg@tv-sign.ru> | 2006-12-08 11:36:07 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-08 17:28:38 +0100 |
commit | 7bcfa95e561f11a17720162935e4f704c5d6fda3 (patch) | |
tree | 3386b5d140064ffd6fa77cc7d900bc690f7ad3a8 /kernel/acct.c | |
parent | [PATCH] do_task_stat(): don't take tty_mutex (diff) | |
download | linux-7bcfa95e561f11a17720162935e4f704c5d6fda3.tar.xz linux-7bcfa95e561f11a17720162935e4f704c5d6fda3.zip |
[PATCH] do_acct_process(): don't take tty_mutex
No need to take the global tty_mutex, signal->tty->driver can't go away while
we are holding ->siglock.
Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to '')
-rw-r--r-- | kernel/acct.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/kernel/acct.c b/kernel/acct.c index ca5619039367..69a40c9777a2 100644 --- a/kernel/acct.c +++ b/kernel/acct.c @@ -485,12 +485,9 @@ static void do_acct_process(struct file *file) ac.ac_ppid = current->parent->tgid; #endif - mutex_lock(&tty_mutex); - tty = get_current_tty(); - ac.ac_tty = tty ? old_encode_dev(tty_devnum(tty)) : 0; - mutex_unlock(&tty_mutex); - spin_lock_irq(¤t->sighand->siglock); + tty = current->signal->tty; + ac.ac_tty = tty ? old_encode_dev(tty_devnum(tty)) : 0; ac.ac_utime = encode_comp_t(jiffies_to_AHZ(cputime_to_jiffies(pacct->ac_utime))); ac.ac_stime = encode_comp_t(jiffies_to_AHZ(cputime_to_jiffies(pacct->ac_stime))); ac.ac_flag = pacct->ac_flag; |