Hello, On Thu, Jan 06, 2011 at 05:27:06PM -0800, maksim.rayskiy@xxxxxxxxx wrote: > diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c > index 7f77c67..0a9d400 100644 > --- a/drivers/ata/libata-core.c > +++ b/drivers/ata/libata-core.c > @@ -4978,6 +4978,14 @@ void ata_qc_issue(struct ata_queued_cmd *qc) > struct ata_link *link = qc->dev->link; > u8 prot = qc->tf.protocol; > > + if (unlikely(link->eh_info.dev_action[qc->dev->devno] & > + ATA_EH_VERIFY)) { > + ata_port_schedule_eh(ap); > + qc->scsidone(qc->scsicmd); > + ata_qc_free(qc); > + return; Hmm... this is weird. You'll probably want to define a qc flag to indicate that the command is for verify and then schedule EH from ata_qc_issue(). That said, I'm not quite sure whether that's any better than scheduling EH from libata-scsi. It's not like the boundary is clearly defined. We already play with EH for other stuff from libata-scsi. Jeff, do you think going through QCFLAG is important? Thanks. -- tejun -- 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