• Tejun Heo's avatar
    block: remove WARN_ON_ONCE() in exit_io_context() · c98b2cc2
    Tejun Heo authored
    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: default avatarSasha Levin <levinsasha928@gmail.com>
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    c98b2cc2
blk-ioc.c 12.7 KB