On 11/23/2017 02:48 AM, Ming Lei wrote:
Now once blk_freeze_queue() returns, all requests(in-queue and pending) can be drained, but we still need to drain blkcg part of request_queue for both blk-mq and legacy, so this patch calls blkcg_drain_queue() explicitely in blk_cleanup_queue() to do that. Then the __blk_drain_queue() in blk_cleanup_queue() can be covered by both blk_freeze_queue() and blkcg_drain_queue(), and tasks blocked in get_request() are waken up in blk_set_queue_dying() too, so remove it from blk_cleanup_queue(). Cc: Wen Xiong<wenxiong@xxxxxxxxxx> Cc: Mauricio Faria de Oliveira<mauricfo@xxxxxxxxxxxxxxxxxx> Signed-off-by: Ming Lei<ming.lei@xxxxxxxxxx>
Tested-by: Mauricio Faria de Oliveira <mauricfo@xxxxxxxxxxxxxxxxxx> All disk pull tests completed successfully without I/O hangs (24 disks). -- Mauricio Faria de Oliveira IBM Linux Technology Center