[SCSI] libsas: add sas_abort_task

This patch adds an external function, sas_abort_task, to enable LLDDs
to abort sas_tasks.  It also adds a work_struct so that the actual
work of aborting a task can be shifted from tasklet context (in the
LLDD) onto the scsi_host's workqueue.

Signed-off-by: Darrick J. Wong <djwong@us.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h
index 7bf2e8b..a1fc20a 100644
--- a/include/scsi/libsas.h
+++ b/include/scsi/libsas.h
@@ -528,6 +528,8 @@
 
 	void   *lldd_task;	  /* for use by LLDDs */
 	void   *uldd_task;
+
+	struct work_struct abort_work;
 };
 
 
@@ -627,4 +629,6 @@
 
 void sas_init_dev(struct domain_device *);
 
+void sas_task_abort(struct sas_task *task);
+
 #endif /* _SASLIB_H_ */