Loading src/drivers/ata/libata-eh.c +7 −4 Original line number Original line Diff line number Diff line Loading @@ -968,7 +968,7 @@ static void ata_eh_set_pending(struct ata_port *ap, int fastdrain) void ata_qc_schedule_eh(struct ata_queued_cmd *qc) void ata_qc_schedule_eh(struct ata_queued_cmd *qc) { { struct ata_port *ap = qc->ap; struct ata_port *ap = qc->ap; struct request_queue *q = qc->scsicmd->device->request_queue; struct request_queue *q; unsigned long flags; unsigned long flags; WARN_ON(!ap->ops->error_handler); WARN_ON(!ap->ops->error_handler); Loading @@ -981,10 +981,13 @@ void ata_qc_schedule_eh(struct ata_queued_cmd *qc) * Note that ATA_QCFLAG_FAILED is unconditionally set after * Note that ATA_QCFLAG_FAILED is unconditionally set after * this function completes. * this function completes. */ */ if (qc->scsicmd != NULL) { q = qc->scsicmd->device->request_queue; spin_lock_irqsave(q->queue_lock, flags); spin_lock_irqsave(q->queue_lock, flags); blk_abort_request(qc->scsicmd->request); blk_abort_request(qc->scsicmd->request); spin_unlock_irqrestore(q->queue_lock, flags); spin_unlock_irqrestore(q->queue_lock, flags); } } } /** /** * ata_std_sched_eh - non-libsas ata_ports issue eh with this common routine * ata_std_sched_eh - non-libsas ata_ports issue eh with this common routine Loading Loading
src/drivers/ata/libata-eh.c +7 −4 Original line number Original line Diff line number Diff line Loading @@ -968,7 +968,7 @@ static void ata_eh_set_pending(struct ata_port *ap, int fastdrain) void ata_qc_schedule_eh(struct ata_queued_cmd *qc) void ata_qc_schedule_eh(struct ata_queued_cmd *qc) { { struct ata_port *ap = qc->ap; struct ata_port *ap = qc->ap; struct request_queue *q = qc->scsicmd->device->request_queue; struct request_queue *q; unsigned long flags; unsigned long flags; WARN_ON(!ap->ops->error_handler); WARN_ON(!ap->ops->error_handler); Loading @@ -981,10 +981,13 @@ void ata_qc_schedule_eh(struct ata_queued_cmd *qc) * Note that ATA_QCFLAG_FAILED is unconditionally set after * Note that ATA_QCFLAG_FAILED is unconditionally set after * this function completes. * this function completes. */ */ if (qc->scsicmd != NULL) { q = qc->scsicmd->device->request_queue; spin_lock_irqsave(q->queue_lock, flags); spin_lock_irqsave(q->queue_lock, flags); blk_abort_request(qc->scsicmd->request); blk_abort_request(qc->scsicmd->request); spin_unlock_irqrestore(q->queue_lock, flags); spin_unlock_irqrestore(q->queue_lock, flags); } } } /** /** * ata_std_sched_eh - non-libsas ata_ports issue eh with this common routine * ata_std_sched_eh - non-libsas ata_ports issue eh with this common routine Loading