diff --git a/lib/iscsi/iscsi.c b/lib/iscsi/iscsi.c index ed3fb899f..f8070da4d 100644 --- a/lib/iscsi/iscsi.c +++ b/lib/iscsi/iscsi.c @@ -2845,6 +2845,16 @@ iscsi_queue_task(struct spdk_iscsi_conn *conn, struct spdk_iscsi_task *task) static void iscsi_queue_mgmt_task(struct spdk_iscsi_conn *conn, struct spdk_iscsi_task *task) { + struct spdk_scsi_lun *lun; + + lun = spdk_scsi_dev_get_lun(conn->dev, task->lun_id); + if (lun == NULL) { + task->scsi.response = SPDK_SCSI_TASK_MGMT_RESP_INVALID_LUN; + spdk_iscsi_task_mgmt_response(conn, task); + spdk_iscsi_task_put(task); + return; + } + spdk_scsi_dev_queue_mgmt_task(conn->dev, &task->scsi); }