+++ b/include/scsi/libsas.h
@@ -644,6 +644,28 @@ static inline bool sas_is_internal_abort(struct sas_task *task)
return task->task_proto == SAS_PROTOCOL_INTERNAL_ABORT;
}
+static inline struct request *sas_task_find_rq(struct sas_task *task)
+{
+ struct scsi_cmnd *scmd;
+
+ if (!task || !task->uldd_task)
+ return NULL;
+
+ if (task->task_proto & SAS_PROTOCOL_STP_ALL) {
+ struct ata_queued_cmd *qc;
+
+ qc = task->uldd_task;
+ scmd = qc->scsicmd;
Can we remove that local qc?
and
scmd = ((struct ata_queued_cmd *)task->uldd_task)->scsicmd;