block: allocate io_context upfront
authorTejun Heo <tj@kernel.org>
Tue, 5 Jun 2012 03:40:56 +0000 (20:40 -0700)
committerJens Axboe <axboe@kernel.dk>
Mon, 25 Jun 2012 09:53:50 +0000 (11:53 +0200)
commit7f4b35d155a5f9e5748539a79558533aa08d6a81
tree9e26e52852cd6b364d413b02b9c5379c5372be7e
parenta06e05e6afab70b4b23c0a7975aaeae24b195cd6
block: allocate io_context upfront

Block layer very lazy allocation of ioc.  It waits until the moment
ioc is absolutely necessary; unfortunately, that time could be inside
queue lock and __get_request() performs unlock - try alloc - retry
dancing.

Just allocate it up-front on entry to block layer.  We're not saving
the rain forest by deferring it to the last possible moment and
complicating things unnecessarily.

This patch is to prepare for further updates to request allocation
path.

Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-core.c
block/blk-throttle.c