On Fri, 2010-02-12 at 12:14 -0500, Alan Stern wrote: > This patch (as1336) fixes a bug in scsi_target_destroy(). It calls > the host template's target_destroy method even if the target_alloc > method failed. (Also, the target_destroy method is called inside the > scope of the host lock, which is unnecessary and probably a mistake.) OK, so this isn't a mistake. The act of create/destroy on the target and removing it from the lists has to be atomic for devices which use fixed slots (most SPI cards). If the target is still in the list after destroy, it could end up getting spuriously reused. Conversely, if you remove it from the list and then destroy, we could end up getting target alloc for a new target called *before* the target_destroy of the old one. > A new flag is added to struct scsi_target to remember whether or not > the target_alloc has succeeded. There also are a couple of minor > whitespace formatting improvements. I don't really see the need for this. None of the users assumes the target was created ... if they do allocations, they all check before unwinding. If there is a case for needing this, it should be part of the target state flags. James -- 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