On Wed, 2019-04-03 at 18:26 +-0800, Ming Lei wrote: +AD4 /+ACo +AD4 - +ACo Before a SCSI command is dispatched, +AD4 - +ACo get+AF8-device(+ACY-sdev-+AD4-sdev+AF8-gendev) is called and the host, +AD4 - +ACo target and device busy counters are increased. Since +AD4 - +ACo requeuing a request causes these actions to be repeated and +AD4 - +ACo since scsi+AF8-device+AF8-unbusy() has already been called, +AD4 - +ACo put+AF8-device(+ACY-device-+AD4-sdev+AF8-gendev) must still be called. Call +AD4 - +ACo put+AF8-device() after blk+AF8-mq+AF8-requeue+AF8-request() to avoid that +AD4 - +ACo removal of the SCSI device can start before requeueing has +AD4 - +ACo happened. +AD4 +- +ACo Before a SCSI command is dispatched, the host, target and +AD4 +- +ACo device busy counters are increased. Since requeuing a request +AD4 +- +ACo causes these actions to be repeated and since scsi+AF8-device+AF8-unbusy() +AD4 +- +ACo has already been called. +AD4 +ACo-/ The last sentence of the new comment looks incomplete to me (+ACI-Since ...+ACI). Thanks, Bart.