Commit 4065d065 authored by Oleg Dzhimiev's avatar Oleg Dzhimiev
Browse files

applied patch

parent 76d5797a
Loading
Loading
Loading
Loading
+7 −4
Original line number Original line Diff line number Diff line
@@ -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);
@@ -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