scsi: target: Use standard SAM status types
authorHannes Reinecke <hare@suse.de>
Tue, 27 Apr 2021 08:30:45 +0000 (10:30 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 1 Jun 2021 02:48:24 +0000 (22:48 -0400)
target_complete_cmd() and friends requires a SAM status type, so passing
GOOD here is actually wrong.

Link: https://lore.kernel.org/r/20210427083046.31620-40-hare@suse.de
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/target/target_core_alua.c
drivers/target/target_core_iblock.c
drivers/target/target_core_pr.c
drivers/target/target_core_pscsi.c
drivers/target/target_core_sbc.c
drivers/target/target_core_spc.c
drivers/target/target_core_xcopy.c

index 5517c7d..3bb9213 100644 (file)
@@ -123,7 +123,7 @@ target_emulate_report_referrals(struct se_cmd *cmd)
 
        transport_kunmap_data_sg(cmd);
 
-       target_complete_cmd(cmd, GOOD);
+       target_complete_cmd(cmd, SAM_STAT_GOOD);
        return 0;
 }
 
@@ -255,7 +255,7 @@ target_emulate_report_target_port_groups(struct se_cmd *cmd)
        }
        transport_kunmap_data_sg(cmd);
 
-       target_complete_cmd_with_length(cmd, GOOD, rd_len + 4);
+       target_complete_cmd_with_length(cmd, SAM_STAT_GOOD, rd_len + 4);
        return 0;
 }
 
@@ -424,7 +424,7 @@ target_emulate_set_target_port_groups(struct se_cmd *cmd)
 out:
        transport_kunmap_data_sg(cmd);
        if (!rc)
-               target_complete_cmd(cmd, GOOD);
+               target_complete_cmd(cmd, SAM_STAT_GOOD);
        return rc;
 }
 
index d6fdd1c..deb2b8b 100644 (file)
@@ -474,7 +474,7 @@ iblock_execute_zero_out(struct block_device *bdev, struct se_cmd *cmd)
        if (ret)
                return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE;
 
-       target_complete_cmd(cmd, GOOD);
+       target_complete_cmd(cmd, SAM_STAT_GOOD);
        return 0;
 }
 
index 6fd5fec..4b94b08 100644 (file)
@@ -234,7 +234,7 @@ target_scsi2_reservation_release(struct se_cmd *cmd)
 out_unlock:
        spin_unlock(&dev->dev_reservation_lock);
 out:
-       target_complete_cmd(cmd, GOOD);
+       target_complete_cmd(cmd, SAM_STAT_GOOD);
        return 0;
 }
 
@@ -297,7 +297,7 @@ out_unlock:
        spin_unlock(&dev->dev_reservation_lock);
 out:
        if (!ret)
-               target_complete_cmd(cmd, GOOD);
+               target_complete_cmd(cmd, SAM_STAT_GOOD);
        return ret;
 }
 
@@ -3676,7 +3676,7 @@ target_scsi3_emulate_pr_out(struct se_cmd *cmd)
        }
 
        if (!ret)
-               target_complete_cmd(cmd, GOOD);
+               target_complete_cmd(cmd, SAM_STAT_GOOD);
        return ret;
 }
 
@@ -4073,7 +4073,7 @@ target_scsi3_emulate_pr_in(struct se_cmd *cmd)
        }
 
        if (!ret)
-               target_complete_cmd(cmd, GOOD);
+               target_complete_cmd(cmd, SAM_STAT_GOOD);
        return ret;
 }
 
index f2a1141..e2b97cb 100644 (file)
@@ -1044,7 +1044,7 @@ static void pscsi_req_done(struct request *req, blk_status_t status)
        struct se_cmd *cmd = req->end_io_data;
        struct pscsi_plugin_task *pt = cmd->priv;
        int result = scsi_req(req)->result;
-       u8 scsi_status = status_byte(result) << 1;
+       u8 scsi_status = result & 0xff;
 
        if (scsi_status != SAM_STAT_GOOD) {
                pr_debug("PSCSI Status Byte exception at cmd: %p CDB:"
index 7b07e55..b32f4ee 100644 (file)
@@ -67,7 +67,7 @@ sbc_emulate_readcapacity(struct se_cmd *cmd)
                transport_kunmap_data_sg(cmd);
        }
 
-       target_complete_cmd_with_length(cmd, GOOD, 8);
+       target_complete_cmd_with_length(cmd, SAM_STAT_GOOD, 8);
        return 0;
 }
 
@@ -130,7 +130,7 @@ sbc_emulate_readcapacity_16(struct se_cmd *cmd)
                transport_kunmap_data_sg(cmd);
        }
 
-       target_complete_cmd_with_length(cmd, GOOD, 32);
+       target_complete_cmd_with_length(cmd, SAM_STAT_GOOD, 32);
        return 0;
 }
 
@@ -202,14 +202,14 @@ sbc_execute_write_same_unmap(struct se_cmd *cmd)
                        return ret;
        }
 
-       target_complete_cmd(cmd, GOOD);
+       target_complete_cmd(cmd, SAM_STAT_GOOD);
        return 0;
 }
 
 static sense_reason_t
 sbc_emulate_noop(struct se_cmd *cmd)
 {
-       target_complete_cmd(cmd, GOOD);
+       target_complete_cmd(cmd, SAM_STAT_GOOD);
        return 0;
 }
 
@@ -1245,7 +1245,7 @@ sbc_execute_unmap(struct se_cmd *cmd)
 err:
        transport_kunmap_data_sg(cmd);
        if (!ret)
-               target_complete_cmd(cmd, GOOD);
+               target_complete_cmd(cmd, SAM_STAT_GOOD);
        return ret;
 }
 
index 2cb141e..22703a0 100644 (file)
@@ -781,7 +781,7 @@ out:
        kfree(buf);
 
        if (!ret)
-               target_complete_cmd_with_length(cmd, GOOD, len);
+               target_complete_cmd_with_length(cmd, SAM_STAT_GOOD, len);
        return ret;
 }
 
@@ -1135,7 +1135,7 @@ set_length:
                transport_kunmap_data_sg(cmd);
        }
 
-       target_complete_cmd_with_length(cmd, GOOD, length);
+       target_complete_cmd_with_length(cmd, SAM_STAT_GOOD, length);
        return 0;
 }
 
@@ -1153,7 +1153,7 @@ static sense_reason_t spc_emulate_modeselect(struct se_cmd *cmd)
        int i;
 
        if (!cmd->data_length) {
-               target_complete_cmd(cmd, GOOD);
+               target_complete_cmd(cmd, SAM_STAT_GOOD);
                return 0;
        }
 
@@ -1196,7 +1196,7 @@ out:
        transport_kunmap_data_sg(cmd);
 
        if (!ret)
-               target_complete_cmd(cmd, GOOD);
+               target_complete_cmd(cmd, SAM_STAT_GOOD);
        return ret;
 }
 
@@ -1229,7 +1229,7 @@ static sense_reason_t spc_emulate_request_sense(struct se_cmd *cmd)
        memcpy(rbuf, buf, min_t(u32, sizeof(buf), cmd->data_length));
        transport_kunmap_data_sg(cmd);
 
-       target_complete_cmd(cmd, GOOD);
+       target_complete_cmd(cmd, SAM_STAT_GOOD);
        return 0;
 }
 
@@ -1296,7 +1296,7 @@ done:
                transport_kunmap_data_sg(cmd);
        }
 
-       target_complete_cmd_with_length(cmd, GOOD, 8 + lun_count * 8);
+       target_complete_cmd_with_length(cmd, SAM_STAT_GOOD, 8 + lun_count * 8);
        return 0;
 }
 EXPORT_SYMBOL(spc_emulate_report_luns);
@@ -1304,7 +1304,7 @@ EXPORT_SYMBOL(spc_emulate_report_luns);
 static sense_reason_t
 spc_emulate_testunitready(struct se_cmd *cmd)
 {
-       target_complete_cmd(cmd, GOOD);
+       target_complete_cmd(cmd, SAM_STAT_GOOD);
        return 0;
 }
 
index 2e7ce66..0f13193 100644 (file)
@@ -998,7 +998,7 @@ static sense_reason_t target_rcr_operating_parameters(struct se_cmd *se_cmd)
        put_unaligned_be32(42, &p[0]);
 
        transport_kunmap_data_sg(se_cmd);
-       target_complete_cmd(se_cmd, GOOD);
+       target_complete_cmd(se_cmd, SAM_STAT_GOOD);
 
        return TCM_NO_SENSE;
 }