[PATCH 2/2] k_getrusage: don't take rcu_read_lock()
From: Oleg Nesterov
Date: Mon Feb 18 2008 - 12:04:53 EST
(just a trivial example, more to come)
k_getrusage() holds rcu_read_lock() because it was previously required by
lock_task_sighand(). Unneeded now.
Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
--- 25/kernel/sys.c~2_GRU 2008-02-15 16:59:17.000000000 +0300
+++ 25/kernel/sys.c 2008-02-18 19:15:40.000000000 +0300
@@ -1548,11 +1548,8 @@ static void k_getrusage(struct task_stru
memset((char *) r, 0, sizeof *r);
utime = stime = cputime_zero;
- rcu_read_lock();
- if (!lock_task_sighand(p, &flags)) {
- rcu_read_unlock();
+ if (!lock_task_sighand(p, &flags))
return;
- }
switch (who) {
case RUSAGE_BOTH:
@@ -1595,9 +1592,7 @@ static void k_getrusage(struct task_stru
default:
BUG();
}
-
unlock_task_sighand(p, &flags);
- rcu_read_unlock();
cputime_to_timeval(utime, &r->ru_utime);
cputime_to_timeval(stime, &r->ru_stime);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/