From 1a2cd90c98278ef9c8594a13bc8b57e6d5fee912 Mon Sep 17 00:00:00 2001 From: Jim Harris Date: Tue, 23 May 2017 13:11:49 -0700 Subject: [PATCH] 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 Change-Id: I38475581b69ba4a034fc7b9e133cfcdfc535a5d3 Reviewed-on: https://review.gerrithub.io/362262 Reviewed-by: Daniel Verkamp Tested-by: SPDK Automated Test System Reviewed-by: Ben Walker --- lib/scsi/lun.c | 80 +++++++++----------------------------------------- 1 file changed, 14 insertions(+), 66 deletions(-) diff --git a/lib/scsi/lun.c b/lib/scsi/lun.c index 0d0f31746..5245029c5 100644 --- a/lib/scsi/lun.c +++ b/lib/scsi/lun.c @@ -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 spdk_scsi_lun_task_mgmt_execute(struct spdk_scsi_task *task, enum spdk_scsi_task_func func) { - int rc; - if (!task) { 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) { case SPDK_SCSI_TASK_FUNC_ABORT_TASK: - rc = spdk_scsi_lun_abort_task(task, task->lun, - task->initiator_port, - task->abort_id); - if (rc < 0) { - SPDK_ERRLOG("ABORT_TASK failed\n"); - } - + task->response = SPDK_SCSI_TASK_MGMT_RESP_REJECT_FUNC_NOT_SUPPORTED; + SPDK_ERRLOG("ABORT_TASK failed\n"); break; case SPDK_SCSI_TASK_FUNC_ABORT_TASK_SET: - rc = spdk_scsi_lun_abort_all(task, task->lun, - task->initiator_port); - if (rc < 0) { - SPDK_ERRLOG("ABORT_TASK_SET failed\n"); - } - + task->response = SPDK_SCSI_TASK_MGMT_RESP_REJECT_FUNC_NOT_SUPPORTED; + SPDK_ERRLOG("ABORT_TASK_SET failed\n"); break; case SPDK_SCSI_TASK_FUNC_LUN_RESET: - rc = spdk_scsi_lun_reset(task, task->lun); - if (rc < 0) { - SPDK_ERRLOG("LUN_RESET failed\n"); - } - return rc; + spdk_bdev_scsi_reset(task->lun->bdev, task); + return 0; default: 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. */ task->response = SPDK_SCSI_TASK_MGMT_RESP_REJECT_FUNC_NOT_SUPPORTED; - rc = -1; break; } spdk_scsi_lun_complete_mgmt_task(task->lun, task); - return rc; + return -1; } void