From: Vivek Goyal Date: Thu, 19 May 2011 19:38:23 +0000 (-0400) Subject: blk-cgroup: Allow sleeping while dynamically allocating a group X-Git-Tag: v3.0-rc1~163^2~20 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f469a7b4d5b1d1d053200a9015fd25d59c057f49;p=pandora-kernel.git blk-cgroup: Allow sleeping while dynamically allocating a group Currently, all the cfq_group or throtl_group allocations happen while we are holding ->queue_lock and sleeping is not allowed. Soon, we will move to per cpu stats and also need to allocate the per group stats. As one can not call alloc_percpu() from atomic context as it can sleep, we need to drop ->queue_lock, allocate the group, retake the lock and continue processing. In throttling code, I check the queue DEAD flag again to make sure that driver did not call blk_cleanup_queue() in the mean time. Signed-off-by: Vivek Goyal Signed-off-by: Jens Axboe --- Reading git-diff-tree failed