Ming, > scsi_device's refcount is always grabbed in IO path. > > Turns out it isn't necessary, because blk_queue_cleanup() will > drain any in-flight IOs, then cancel timeout/requeue work, and > SCSI's requeue_work is canceled too in __scsi_remove_device(). > > Also scsi_device won't go away until blk_cleanup_queue() is done. > > So don't hold the refcount in IO path, especially the refcount isn't > required in IO path since blk_queue_enter() / blk_queue_exit() > is introduced in the legacy block layer. This all looks good to me. I assume it will go through Jens' tree? Acked-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx> -- Martin K. Petersen Oracle Linux Engineering