scsi: Add scsi_task_process_abort for aborted SCSI tasks.
Subsequent patches will have to abort SCSI tasks in the iSCSI layer. But spdk_scsi_task_set_status() API is not public API. spdk_scsi_task_process_null_lun() is existing public API but LUN NOT SUPPORTED is not appropriate for those cases. Hence add an new public API spdk_scsi_task_process_abort(). Change-Id: I5b488e902ccd790ace2936b3e6ebfeb124fa429a Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-on: https://review.gerrithub.io/436080 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
5a365f3643
commit
ba1811556b
@ -472,6 +472,13 @@ void spdk_scsi_task_copy_status(struct spdk_scsi_task *dst, struct spdk_scsi_tas
|
|||||||
*/
|
*/
|
||||||
void spdk_scsi_task_process_null_lun(struct spdk_scsi_task *task);
|
void spdk_scsi_task_process_null_lun(struct spdk_scsi_task *task);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Process the aborted SCSI task.
|
||||||
|
*
|
||||||
|
* \param task SCSI task.
|
||||||
|
*/
|
||||||
|
void spdk_scsi_task_process_abort(struct spdk_scsi_task *task);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Open a logical unit for I/O operations.
|
* Open a logical unit for I/O operations.
|
||||||
*
|
*
|
||||||
|
@ -171,10 +171,7 @@ _spdk_scsi_lun_execute_task(struct spdk_scsi_lun *lun, struct spdk_scsi_task *ta
|
|||||||
if (!lun->removed) {
|
if (!lun->removed) {
|
||||||
rc = spdk_bdev_scsi_execute(task);
|
rc = spdk_bdev_scsi_execute(task);
|
||||||
} else {
|
} else {
|
||||||
spdk_scsi_task_set_status(task, SPDK_SCSI_STATUS_CHECK_CONDITION,
|
spdk_scsi_task_process_abort(task);
|
||||||
SPDK_SCSI_SENSE_ABORTED_COMMAND,
|
|
||||||
SPDK_SCSI_ASC_NO_ADDITIONAL_SENSE,
|
|
||||||
SPDK_SCSI_ASCQ_CAUSE_NOT_REPORTABLE);
|
|
||||||
rc = SPDK_SCSI_TASK_COMPLETE;
|
rc = SPDK_SCSI_TASK_COMPLETE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -291,3 +291,12 @@ spdk_scsi_task_process_null_lun(struct spdk_scsi_task *task)
|
|||||||
task->data_transferred = 0;
|
task->data_transferred = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
spdk_scsi_task_process_abort(struct spdk_scsi_task *task)
|
||||||
|
{
|
||||||
|
spdk_scsi_task_set_status(task, SPDK_SCSI_STATUS_CHECK_CONDITION,
|
||||||
|
SPDK_SCSI_SENSE_ABORTED_COMMAND,
|
||||||
|
SPDK_SCSI_ASC_NO_ADDITIONAL_SENSE,
|
||||||
|
SPDK_SCSI_ASCQ_CAUSE_NOT_REPORTABLE);
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user