[ 042/180] block: Fix io_context leak after clone with CLONE_IO

From: Willy Tarreau
Date: Mon Oct 01 2012 - 20:10:39 EST


2.6.32-longterm review patch. If anyone has any objections, please let me know.

------------------

From: Louis Rilling <louis.rilling@xxxxxxxxxxx>

commit 61cc74fbb87af6aa551a06a370590c9bc07e29d9 upstream

With CLONE_IO, copy_io() increments both ioc->refcount and ioc->nr_tasks.
However exit_io_context() only decrements ioc->refcount if ioc->nr_tasks
reaches 0.

Always call put_io_context() in exit_io_context().

Signed-off-by: Louis Rilling <louis.rilling@xxxxxxxxxxx>
Signed-off-by: Jens Axboe <jens.axboe@xxxxxxxxxx>
Signed-off-by: Willy Tarreau <w@xxxxxx>
---
block/blk-ioc.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/block/blk-ioc.c b/block/blk-ioc.c
index d4ed600..dcd0412 100644
--- a/block/blk-ioc.c
+++ b/block/blk-ioc.c
@@ -80,8 +80,8 @@ void exit_io_context(void)
ioc->aic->exit(ioc->aic);
cfq_exit(ioc);

- put_io_context(ioc);
}
+ put_io_context(ioc);
}

struct io_context *alloc_io_context(gfp_t gfp_flags, int node)
--
1.7.2.1.45.g54fbc



--
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/