target: Return correct ASC for unimplemented VPD pages
authorRoland Dreier <roland@purestorage.com>
Wed, 18 Jan 2012 02:00:56 +0000 (18:00 -0800)
committerNicholas Bellinger <nab@linux-iscsi.org>
Wed, 18 Jan 2012 08:35:58 +0000 (08:35 +0000)
My draft of SPC-4 says:

    If the device server does not implement the requested vital product
    data page, then the command shall be terminated with CHECK CONDITION
    status, with the sense key set to ILLEGAL REQUEST, and the
    additional sense code set to INVALID FIELD IN CDB.

Signed-off-by: Roland Dreier <roland@purestorage.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_cdb.c

index 07a3025d062258cb4f96a57195596cf2231f4244..370ad13930a46c9d60654ea6cac7e57c32032d62 100644 (file)
@@ -729,7 +729,7 @@ int target_emulate_inquiry(struct se_task *task)
        }
 
        pr_err("Unknown VPD Code: 0x%02x\n", cdb[2]);
-       cmd->scsi_sense_reason = TCM_UNSUPPORTED_SCSI_OPCODE;
+       cmd->scsi_sense_reason = TCM_INVALID_CDB_FIELD;
        ret = -EINVAL;
 
 out_unmap: