Currently, DID_ABORT relays the failure to the upper layer, while TASK ABORTED (after the suggestion at http://marc.info/?l=linux-scsi&m=121932916906009&w=2 was implemented) retries the command. Is it correct that when TAS=0 an aborted task (from TMF, persistent reservation or anything else) can result in DID_ABORT? There are some clues of this in the drivers, but on the other hand scsi-debug has a very strange usage of DID_ABORT: static const int illegal_condition_result = (DRIVER_SENSE << 24) | (DID_ABORT << 16) | SAM_STAT_CHECK_CONDITION; ... /* DIX + T10 DIF */ if (scsi_debug_dix && scsi_prot_sg_count(SCpnt)) { int prot_ret = prot_verify_read(SCpnt, lba, num, ei_lba); if (prot_ret) { mk_sense_buffer(devip, ABORTED_COMMAND, 0x10, prot_ret); return illegal_condition_result; } } If it is the case that they are similar, is there any reason why the two are handled differently? Paolo -- 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