]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
block: remove WARN_ON_ONCE() in exit_io_context()
authorTejun Heo <tj@kernel.org>
Tue, 27 Dec 2011 17:52:16 +0000 (18:52 +0100)
committerJens Axboe <axboe@kernel.dk>
Tue, 27 Dec 2011 17:52:16 +0000 (18:52 +0100)
6e736be7 "block: make ioc get/put interface more conventional and fix
race on alloction" added WARN_ON_ONCE() in exit_io_context() which
triggers if !PF_EXITING.  All tasks hitting exit_io_context() from
task exit should have PF_EXITING set but task struct tearing down
after fork failure calls into the function without PF_EXITING,
triggering the condition.

  WARNING: at block/blk-ioc.c:234 exit_io_context+0x40/0x92()
  Pid: 17090, comm: trinity Not tainted 3.2.0-rc6-next-20111222-sasha-dirty #77
  Call Trace:
   [<ffffffff810b69a3>] warn_slowpath_common+0x8f/0xb2
   [<ffffffff810b6a77>] warn_slowpath_null+0x18/0x1a
   [<ffffffff8181a7a2>] exit_io_context+0x40/0x92
   [<ffffffff810b58c9>] copy_process+0x126f/0x1453
   [<ffffffff810b5c1b>] do_fork+0x120/0x3e9
   [<ffffffff8106242f>] sys_clone+0x26/0x28
   [<ffffffff82425803>] stub_clone+0x13/0x20
  ---[ end trace a2e4eb670b375238 ]---

Reported-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-ioc.c

index 33fae7df16a016d7ccbb0ccb6b3f78e47d9f0765..27a06e00eaec4312c5596ad58ebaa7fcc8c438ef 100644 (file)
@@ -230,9 +230,6 @@ void exit_io_context(struct task_struct *task)
 {
        struct io_context *ioc;
 
-       /* PF_EXITING prevents new io_context from being attached to @task */
-       WARN_ON_ONCE(!(current->flags & PF_EXITING));
-
        task_lock(task);
        ioc = task->io_context;
        task->io_context = NULL;