Re: [RFC PATCH 1/5] block: Introduce q->abort_queue_fn()
From: Tejun Heo <tj@kernel.org>
Date: 2012-05-21 15:42:13
Also in:
kvm, linux-fsdevel
From: Tejun Heo <tj@kernel.org>
Date: 2012-05-21 15:42:13
Also in:
kvm, linux-fsdevel
On Mon, May 21, 2012 at 05:08:29PM +0800, Asias He wrote:
When user hot-unplug a disk which is busy serving I/O, __blk_run_queue might be unable to drain all the requests. As a result, the blk_drain_queue() would loop forever and blk_cleanup_queue would not return. So hot-unplug will fail. This patch adds a callback in blk_drain_queue() for low lever driver to abort requests. Currently, this is useful for virtio-blk to do cleanup in hot-unplug.
Why is this necessary? virtio-blk should know that the device is gone and fail in-flight / new commands. That's what other drivers do. What makes virtio-blk different? Thanks. -- tejun