On Thu, Sep 21, 2017 at 10:43:26PM +0000, Bart Van Assche wrote: > On Fri, 2017-09-22 at 06:06 +0800, Ming Lei wrote: > > On Thu, Sep 21, 2017 at 02:22:55PM -0700, Bart Van Assche wrote: > > > + } else { > > > scsi_run_queue(q); > > > + while (atomic_read(&sdev->device_busy)) { > > > + msleep_interruptible(200); > > > + scsi_run_queue(q); > > > + } > > > > Are you sure only blk-mq need to drain queue? We need > > to do that for block legacy too. > > The code above your comment drains the queue for the legacy block layer. That is just draining the requests dispatched to SCSI layer, and there might be lots of requests in block I/O scheduler queue or requeue or whatever. -- Ming