mm-commits.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [alternative-merged] ioprio-rcu_read_lock-unlock-protect-find_task_by_vpid-call-v2.patch removed from -mm tree
@ 2010-11-25 16:16 akpm
  0 siblings, 0 replies; only message in thread
From: akpm @ 2010-11-25 16:16 UTC (permalink / raw)
  To: sergey.senozhatsky, axboe, paulmck, mm-commits


The patch titled
     ioprio: rcu_read_lock/unlock protect find_task_by_vpid call (V2)
has been removed from the -mm tree.  Its filename was
     ioprio-rcu_read_lock-unlock-protect-find_task_by_vpid-call-v2.patch

This patch was dropped because an alternative patch was merged

The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/

------------------------------------------------------
Subject: ioprio: rcu_read_lock/unlock protect find_task_by_vpid call (V2)
From: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>

Commit 4221a9918e38b7494cee341dda7b7b4bb8c04bde ("Add RCU check for
find_task_by_vpid()") introduced rcu_lockdep_assert to
find_task_by_pid_ns.  Assertion failed in sys_ioprio_get.  The patch is
fixing assertion failure in ioprio_set as well.

 kernel/pid.c:419 invoked rcu_dereference_check() without protection!

 stack backtrace:
 Pid: 4254, comm: iotop Not tainted
 Call Trace:
 [<ffffffff810656f2>] lockdep_rcu_dereference+0xaa/0xb2
 [<ffffffff81053c67>] find_task_by_pid_ns+0x4f/0x68
 [<ffffffff81053c9d>] find_task_by_vpid+0x1d/0x1f
 [<ffffffff811104e2>] sys_ioprio_get+0x50/0x2da
 [<ffffffff81002182>] system_call_fastpath+0x16/0x1b

Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---

 fs/ioprio.c |    4 ++++
 1 file changed, 4 insertions(+)

diff -puN fs/ioprio.c~ioprio-rcu_read_lock-unlock-protect-find_task_by_vpid-call-v2 fs/ioprio.c
--- a/fs/ioprio.c~ioprio-rcu_read_lock-unlock-protect-find_task_by_vpid-call-v2
+++ a/fs/ioprio.c
@@ -106,12 +106,14 @@ SYSCALL_DEFINE3(ioprio_set, int, which, 
 	rcu_read_lock();
 	switch (which) {
 		case IOPRIO_WHO_PROCESS:
+			rcu_read_lock();
 			if (!who)
 				p = current;
 			else
 				p = find_task_by_vpid(who);
 			if (p)
 				ret = set_task_ioprio(p, ioprio);
+			rcu_read_unlock();
 			break;
 		case IOPRIO_WHO_PGRP:
 			if (!who)
@@ -195,12 +197,14 @@ SYSCALL_DEFINE2(ioprio_get, int, which, 
 	rcu_read_lock();
 	switch (which) {
 		case IOPRIO_WHO_PROCESS:
+			rcu_read_lock();
 			if (!who)
 				p = current;
 			else
 				p = find_task_by_vpid(who);
 			if (p)
 				ret = get_task_ioprio(p);
+			rcu_read_unlock();
 			break;
 		case IOPRIO_WHO_PGRP:
 			if (!who)
_

Patches currently in -mm which might be from sergey.senozhatsky@gmail.com are

linux-next.patch


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2010-11-25 16:21 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-11-25 16:16 [alternative-merged] ioprio-rcu_read_lock-unlock-protect-find_task_by_vpid-call-v2.patch removed from -mm tree akpm

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).