]> bbs.cooldavid.org Git - net-next-2.6.git/commit - kernel/fork.c
block: Fix io_context leak after failure of clone with CLONE_IO
authorLouis Rilling <louis.rilling@kerlabs.com>
Fri, 4 Dec 2009 13:52:42 +0000 (14:52 +0100)
committerJens Axboe <jens.axboe@oracle.com>
Fri, 4 Dec 2009 15:36:18 +0000 (16:36 +0100)
commitb69f2292063d2caf37ca9aec7d63ded203701bf3
treebe4acb81ea4ab7014047808ec2b2c908e8334f55
parent61cc74fbb87af6aa551a06a370590c9bc07e29d9
block: Fix io_context leak after failure of clone with CLONE_IO

With CLONE_IO, parent's io_context->nr_tasks is incremented, but never
decremented whenever copy_process() fails afterwards, which prevents
exit_io_context() from calling IO schedulers exit functions.

Give a task_struct to exit_io_context(), and call exit_io_context() instead of
put_io_context() in copy_process() cleanup path.

Signed-off-by: Louis Rilling <louis.rilling@kerlabs.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
block/blk-ioc.c
include/linux/iocontext.h
kernel/exit.c
kernel/fork.c