scsi: simplify lun task mgmt path
1) Consolidate the checks for a null LUN 2) Eliminate a bunch of static functions that are no longer needed due to #1 This prepares for some upcoming bdev reset changes. Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I38475581b69ba4a034fc7b9e133cfcdfc535a5d3 Reviewed-on: https://review.gerrithub.io/362262 Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com> Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
fa1429ba02
commit
1a2cd90c98
@ -89,86 +89,35 @@ spdk_scsi_lun_clear_all(struct spdk_scsi_lun *lun)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
spdk_scsi_lun_abort_all(struct spdk_scsi_task *mtask,
|
|
||||||
struct spdk_scsi_lun *lun,
|
|
||||||
struct spdk_scsi_port *initiator_port)
|
|
||||||
{
|
|
||||||
if (!lun) {
|
|
||||||
mtask->response = SPDK_SCSI_TASK_MGMT_RESP_INVALID_LUN;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
mtask->response = SPDK_SCSI_TASK_MGMT_RESP_REJECT_FUNC_NOT_SUPPORTED;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
spdk_scsi_lun_abort_task(struct spdk_scsi_task *mtask,
|
|
||||||
struct spdk_scsi_lun *lun,
|
|
||||||
struct spdk_scsi_port *initiator_port,
|
|
||||||
uint32_t task_tag)
|
|
||||||
{
|
|
||||||
if (!lun) {
|
|
||||||
/* LUN does not exist */
|
|
||||||
mtask->response = SPDK_SCSI_TASK_MGMT_RESP_INVALID_LUN;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
mtask->response = SPDK_SCSI_TASK_MGMT_RESP_REJECT_FUNC_NOT_SUPPORTED;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
spdk_scsi_lun_reset(struct spdk_scsi_task *mtask, struct spdk_scsi_lun *lun)
|
|
||||||
{
|
|
||||||
if (!lun) {
|
|
||||||
/* LUN does not exist */
|
|
||||||
mtask->response = SPDK_SCSI_TASK_MGMT_RESP_INVALID_LUN;
|
|
||||||
spdk_scsi_lun_complete_mgmt_task(NULL, mtask);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
spdk_bdev_scsi_reset(lun->bdev, mtask);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
int
|
||||||
spdk_scsi_lun_task_mgmt_execute(struct spdk_scsi_task *task,
|
spdk_scsi_lun_task_mgmt_execute(struct spdk_scsi_task *task,
|
||||||
enum spdk_scsi_task_func func)
|
enum spdk_scsi_task_func func)
|
||||||
{
|
{
|
||||||
int rc;
|
|
||||||
|
|
||||||
if (!task) {
|
if (!task) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!task->lun) {
|
||||||
|
/* LUN does not exist */
|
||||||
|
task->response = SPDK_SCSI_TASK_MGMT_RESP_INVALID_LUN;
|
||||||
|
spdk_scsi_lun_complete_mgmt_task(NULL, task);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
switch (func) {
|
switch (func) {
|
||||||
case SPDK_SCSI_TASK_FUNC_ABORT_TASK:
|
case SPDK_SCSI_TASK_FUNC_ABORT_TASK:
|
||||||
rc = spdk_scsi_lun_abort_task(task, task->lun,
|
task->response = SPDK_SCSI_TASK_MGMT_RESP_REJECT_FUNC_NOT_SUPPORTED;
|
||||||
task->initiator_port,
|
SPDK_ERRLOG("ABORT_TASK failed\n");
|
||||||
task->abort_id);
|
|
||||||
if (rc < 0) {
|
|
||||||
SPDK_ERRLOG("ABORT_TASK failed\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SPDK_SCSI_TASK_FUNC_ABORT_TASK_SET:
|
case SPDK_SCSI_TASK_FUNC_ABORT_TASK_SET:
|
||||||
rc = spdk_scsi_lun_abort_all(task, task->lun,
|
task->response = SPDK_SCSI_TASK_MGMT_RESP_REJECT_FUNC_NOT_SUPPORTED;
|
||||||
task->initiator_port);
|
SPDK_ERRLOG("ABORT_TASK_SET failed\n");
|
||||||
if (rc < 0) {
|
|
||||||
SPDK_ERRLOG("ABORT_TASK_SET failed\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SPDK_SCSI_TASK_FUNC_LUN_RESET:
|
case SPDK_SCSI_TASK_FUNC_LUN_RESET:
|
||||||
rc = spdk_scsi_lun_reset(task, task->lun);
|
spdk_bdev_scsi_reset(task->lun->bdev, task);
|
||||||
if (rc < 0) {
|
return 0;
|
||||||
SPDK_ERRLOG("LUN_RESET failed\n");
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
SPDK_ERRLOG("Unknown Task Management Function!\n");
|
SPDK_ERRLOG("Unknown Task Management Function!\n");
|
||||||
@ -178,13 +127,12 @@ spdk_scsi_lun_task_mgmt_execute(struct spdk_scsi_task *task,
|
|||||||
* the task as being unsupported.
|
* the task as being unsupported.
|
||||||
*/
|
*/
|
||||||
task->response = SPDK_SCSI_TASK_MGMT_RESP_REJECT_FUNC_NOT_SUPPORTED;
|
task->response = SPDK_SCSI_TASK_MGMT_RESP_REJECT_FUNC_NOT_SUPPORTED;
|
||||||
rc = -1;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
spdk_scsi_lun_complete_mgmt_task(task->lun, task);
|
spdk_scsi_lun_complete_mgmt_task(task->lun, task);
|
||||||
|
|
||||||
return rc;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user