summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoern Engel <joern@purestorage.com>2015-07-23 01:01:36 +0300
committerNicholas Bellinger <nab@linux-iscsi.org>2015-07-31 09:49:36 +0300
commit568e1f6524b06ff113cebf5711832ca95d37259f (patch)
treef95a2852ca47653fa257202a568c7b8cdad6f12b
parentc72c5250224d475614a00c1d7e54a67f77cd3410 (diff)
downloadlinux-568e1f6524b06ff113cebf5711832ca95d37259f.tar.xz
target: improve unsupported opcode message
Make the warning about unsupported SCSI opcode more useful: - Add in the initiator name so we know who's sending it. - Print the warning even for opcodes that spc_parse_cdb() knows about but that we don't handle. Signed-off-by: Joern Engel <joern@purestorage.com> Signed-off-by: Spencer Baugh <sbaugh@catern.com> Reviewed-by: Sagi Grimberg <sagig@mellanox.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
-rw-r--r--drivers/target/target_core_spc.c3
-rw-r--r--drivers/target/target_core_transport.c5
2 files changed, 5 insertions, 3 deletions
diff --git a/drivers/target/target_core_spc.c b/drivers/target/target_core_spc.c
index b949d335a6ba..a07d455e0dd5 100644
--- a/drivers/target/target_core_spc.c
+++ b/drivers/target/target_core_spc.c
@@ -1390,9 +1390,6 @@ spc_parse_cdb(struct se_cmd *cmd, unsigned int *size)
}
break;
default:
- pr_warn("TARGET_CORE[%s]: Unsupported SCSI Opcode"
- " 0x%02x, sending CHECK_CONDITION.\n",
- cmd->se_tfo->get_fabric_name(), cdb[0]);
return TCM_UNSUPPORTED_SCSI_OPCODE;
}
diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
index 729ec7345e99..bd68727a6806 100644
--- a/drivers/target/target_core_transport.c
+++ b/drivers/target/target_core_transport.c
@@ -1247,6 +1247,11 @@ target_setup_cmd_from_cdb(struct se_cmd *cmd, unsigned char *cdb)
}
ret = dev->transport->parse_cdb(cmd);
+ if (ret == TCM_UNSUPPORTED_SCSI_OPCODE)
+ pr_warn_ratelimited("%s/%s: Unsupported SCSI Opcode 0x%02x, sending CHECK_CONDITION.\n",
+ cmd->se_tfo->get_fabric_name(),
+ cmd->se_sess->se_node_acl->initiatorname,
+ cmd->t_task_cdb[0]);
if (ret)
return ret;