diff options
author | Joern Engel <joern@purestorage.com> | 2015-07-23 01:01:36 +0300 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2015-07-31 09:49:36 +0300 |
commit | 568e1f6524b06ff113cebf5711832ca95d37259f (patch) | |
tree | f95a2852ca47653fa257202a568c7b8cdad6f12b | |
parent | c72c5250224d475614a00c1d7e54a67f77cd3410 (diff) | |
download | linux-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.c | 3 | ||||
-rw-r--r-- | drivers/target/target_core_transport.c | 5 |
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; |