On Thu, Dec 03, 2015 at 08:17:40AM +0100, Hannes Reinecke wrote: > scsi_eh_scmd_add() currently only will fail if no > error handler thread is started (which will never be the > case) or if the state machine encounters an illegal transition. > > But if we're encountering an invalid state transition > chances is we cannot fixup things with the error handler. > So better add a WARN_ON for illegal host states and > make scsi_dh_scmd_add() a void function. The ehandler parts looks trivially correct, but I'm a little worried about the state transition. The states that we can't transition from are: SHOST_CREATED, SHOST_DEL and SHOST_DEL_RECOVERY. We initialize the state to SHOST_CREATED in scsi_host_alloc and transition away from it in scsi_add_host_with_dma, so that's a true "should be impossible" condition. We transition to SHOST_DEL or SHOST_DEL_RECOVERY in scsi_remove_host and the host remains in it until the final reference is dropped. Given that we wait for all pending I/O in blk_cleanup_queue called from __scsi_remove_device this should be fine as well. So: Reviewed-by: Christoph Hellwig <hch@xxxxxx> But preferably with an updated changelog that explains things better. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html