Blob Blame History Raw
From 65186c8a1fc3874bdcf81ff75b229e5199318917 Mon Sep 17 00:00:00 2001
From: Mike Christie <mchristi@redhat.com>
Date: Tue, 19 Dec 2017 04:03:55 -0600
Subject: [PATCH] target: add SAM_STAT_BUSY sense reason
Git-commit: d120c7083f49d177e6765afad543faa0f243590e
Patch-mainline: v4.16-rc1
References: bsc#1118978

Add SAM_STAT_BUSY sense_reason. The next patch will have
target_core_user return this value while it is temporarily
blocked and restarting.

Signed-off-by: Mike Christie <mchristi@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
[ddiss@suse.de: rebase against SLE kernel without 79dd6f2fd170e:
                TCM_INSUFFICIENT_REGISTRATION_RESOURCES]
Acked-by: David Disseldorp <ddiss@suse.de>

---
 drivers/target/target_core_transport.c | 3 +++
 include/target/target_core_base.h      | 1 +
 2 files changed, 4 insertions(+)

diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
index d8f7cc19947a..73719990f9d7 100644
--- a/drivers/target/target_core_transport.c
+++ b/drivers/target/target_core_transport.c
@@ -1792,6 +1792,9 @@ void transport_generic_request_failure(struct se_cmd *cmd,
 	case TCM_OUT_OF_RESOURCES:
 		cmd->scsi_status = SAM_STAT_TASK_SET_FULL;
 		goto queue_status;
+	case TCM_LUN_BUSY:
+		cmd->scsi_status = SAM_STAT_BUSY;
+		goto queue_status;
 	case TCM_RESERVATION_CONFLICT:
 		/*
 		 * No SENSE Data payload for this case, set SCSI Status
diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h
index 47b995c6e285..a93b5449bc2c 100644
--- a/include/target/target_core_base.h
+++ b/include/target/target_core_base.h
@@ -184,6 +184,7 @@ enum tcm_sense_reason_table {
 	TCM_UNSUPPORTED_TARGET_DESC_TYPE_CODE	= R(0x1a),
 	TCM_TOO_MANY_SEGMENT_DESCS		= R(0x1b),
 	TCM_UNSUPPORTED_SEGMENT_DESC_TYPE_CODE	= R(0x1c),
+	TCM_LUN_BUSY				= R(0x1e),
 #undef R
 };
 
-- 
2.13.7