- Cleanup: masked_status deleted, use status instead

- In FILEIO report in MODE SENSE if NV_CACHE enabled that no commands reordering is possible


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@69 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
Vladislav Bolkhovitin
2006-12-21 11:04:34 +00:00
parent dc7b5d8684
commit fc5236bf09
11 changed files with 26 additions and 45 deletions

View File

@@ -1175,10 +1175,9 @@ struct scst_cmd
int resp_data_len;
uint8_t status; /* status byte from target device */
uint8_t masked_status; /* set from host device by status_byte() */
uint8_t msg_status; /* return status from host adapter itself */
uint16_t host_status; /* set by low-level driver to indicate status */
uint16_t driver_status; /* set by mid-level */
uint8_t host_status; /* set by low-level driver to indicate status */
uint8_t driver_status; /* set by mid-level */
/* Used for storage of target driver private stuff */
void *tgt_priv;
@@ -1872,12 +1871,6 @@ static inline uint8_t scst_cmd_get_status(struct scst_cmd *cmd)
return cmd->status;
}
/* Returns cmd's status byte set from host device by status_byte() */
static inline uint8_t scst_cmd_get_masked_status(struct scst_cmd *cmd)
{
return cmd->masked_status;
}
/* Returns cmd's status from host adapter itself */
static inline uint8_t scst_cmd_get_msg_status(struct scst_cmd *cmd)
{
@@ -1885,13 +1878,13 @@ static inline uint8_t scst_cmd_get_msg_status(struct scst_cmd *cmd)
}
/* Returns cmd's status set by low-level driver to indicate its status */
static inline uint16_t scst_cmd_get_host_status(struct scst_cmd *cmd)
static inline uint8_t scst_cmd_get_host_status(struct scst_cmd *cmd)
{
return cmd->host_status;
}
/* Returns cmd's status set by SCSI mid-level */
static inline uint16_t scst_cmd_get_driver_status(struct scst_cmd *cmd)
static inline uint8_t scst_cmd_get_driver_status(struct scst_cmd *cmd)
{
return cmd->driver_status;
}

View File

@@ -288,7 +288,7 @@ int cdrom_parse(struct scst_cmd *cmd, const struct scst_info_cdb *info_cdb)
int cdrom_done(struct scst_cmd *cmd)
{
int opcode = cmd->cdb[0];
int masked_status = cmd->masked_status;
int status = cmd->status;
struct cdrom_params *cdrom;
int res = SCST_CMD_STATE_DEFAULT;
@@ -299,11 +299,11 @@ int cdrom_done(struct scst_cmd *cmd)
/*
* SCST sets good defaults for cmd->tgt_resp_flags and cmd->resp_data_len
* based on cmd->masked_status and cmd->data_direction, therefore change
* based on cmd->status and cmd->data_direction, therefore change
* them only if necessary
*/
if ((masked_status == GOOD) || (masked_status == CONDITION_GOOD)) {
if ((status == SAM_STAT_GOOD) || (status == SAM_STAT_CONDITION_MET)) {
switch (opcode) {
case READ_CAPACITY:
{

View File

@@ -183,7 +183,7 @@ int changer_done(struct scst_cmd *cmd)
/*
* SCST sets good defaults for cmd->tgt_resp_flags and cmd->resp_data_len
* based on cmd->masked_status and cmd->data_direction, therefore change
* based on cmd->status and cmd->data_direction, therefore change
* them only if necessary
*/

View File

@@ -351,7 +351,7 @@ int disk_parse(struct scst_cmd *cmd, const struct scst_info_cdb *info_cdb)
int disk_done(struct scst_cmd *cmd)
{
int opcode = cmd->cdb[0];
int masked_status = cmd->masked_status;
int status = cmd->status;
struct disk_params *disk;
int res = SCST_CMD_STATE_DEFAULT;
@@ -362,11 +362,11 @@ int disk_done(struct scst_cmd *cmd)
/*
* SCST sets good defaults for cmd->tgt_resp_flags and cmd->resp_data_len
* based on cmd->masked_status and cmd->data_direction, therefore change
* based on cmd->status and cmd->data_direction, therefore change
* them only if necessary
*/
if ((masked_status == GOOD) || (masked_status == CONDITION_GOOD)) {
if ((status == SAM_STAT_GOOD) || (status == SAM_STAT_CONDITION_MET)) {
switch (opcode) {
case READ_CAPACITY:
{
@@ -444,7 +444,6 @@ int disk_exec(struct scst_cmd *cmd)
case READ_16:
res = SCST_EXEC_COMPLETED;
cmd->status = 0;
cmd->masked_status = 0;
cmd->msg_status = 0;
cmd->host_status = DID_OK;
cmd->driver_status = 0;

View File

@@ -893,7 +893,6 @@ static int disk_fileio_exec(struct scst_cmd *cmd)
TRACE_ENTRY();
cmd->status = 0;
cmd->masked_status = 0;
cmd->msg_status = 0;
cmd->host_status = DID_OK;
cmd->driver_status = 0;
@@ -1056,7 +1055,6 @@ static int cdrom_fileio_exec(struct scst_cmd *cmd)
TRACE_ENTRY();
cmd->status = 0;
cmd->masked_status = 0;
cmd->msg_status = 0;
cmd->host_status = DID_OK;
cmd->driver_status = 0;
@@ -1380,7 +1378,7 @@ static int fileio_ctrl_m_pg(unsigned char *p, int pcontrol,
0, 0, 0x2, 0x4b};
memcpy(p, ctrl_m_pg, sizeof(ctrl_m_pg));
if (!virt_dev->wt_flag)
if (!virt_dev->wt_flag && !virt_dev->nv_cache)
p[3] |= 0x10; /* Enable unrestricted reordering */
if (1 == pcontrol)
memset(p + 2, 0, sizeof(ctrl_m_pg) - 2);

View File

@@ -375,7 +375,7 @@ int modisk_parse(struct scst_cmd *cmd, const struct scst_info_cdb *info_cdb)
int modisk_done(struct scst_cmd *cmd)
{
int opcode = cmd->cdb[0];
int masked_status = cmd->masked_status;
int status = cmd->status;
struct modisk_params *modisk;
int res = SCST_CMD_STATE_DEFAULT;
@@ -386,11 +386,11 @@ int modisk_done(struct scst_cmd *cmd)
/*
* SCST sets good defaults for cmd->tgt_resp_flags and cmd->resp_data_len
* based on cmd->masked_status and cmd->data_direction, therefore change
* based on cmd->status and cmd->data_direction, therefore change
* them only if necessary
*/
if ((masked_status == GOOD) || (masked_status == CONDITION_GOOD)) {
if ((status == SAM_STAT_GOOD) || (status == SAM_STAT_CONDITION_MET)) {
switch (opcode) {
case READ_CAPACITY:
{
@@ -468,7 +468,6 @@ int modisk_exec(struct scst_cmd *cmd)
case READ_16:
res = SCST_EXEC_COMPLETED;
cmd->status = 0;
cmd->masked_status = 0;
cmd->msg_status = 0;
cmd->host_status = DID_OK;
cmd->driver_status = 0;

View File

@@ -183,7 +183,7 @@ int processor_done(struct scst_cmd *cmd)
/*
* SCST sets good defaults for cmd->tgt_resp_flags and cmd->resp_data_len
* based on cmd->masked_status and cmd->data_direction, therefore change
* based on cmd->status and cmd->data_direction, therefore change
* them only if necessary
*/

View File

@@ -183,7 +183,7 @@ int raid_done(struct scst_cmd *cmd)
/*
* SCST sets good defaults for cmd->tgt_resp_flags and cmd->resp_data_len
* based on cmd->masked_status and cmd->data_direction, therefore change
* based on cmd->status and cmd->data_direction, therefore change
* them only if necessary
*/

View File

@@ -348,7 +348,7 @@ int tape_parse(struct scst_cmd *cmd, const struct scst_info_cdb *info_cdb)
int tape_done(struct scst_cmd *cmd)
{
int opcode = cmd->cdb[0];
int masked_status = cmd->masked_status;
int status = cmd->status;
struct tape_params *tape;
int res = SCST_CMD_STATE_DEFAULT;
@@ -359,11 +359,11 @@ int tape_done(struct scst_cmd *cmd)
/*
* SCST sets good defaults for cmd->tgt_resp_flags and cmd->resp_data_len
* based on cmd->masked_status and cmd->data_direction, therefore change
* based on cmd->status and cmd->data_direction, therefore change
* them only if necessary
*/
if ((masked_status == GOOD) || (masked_status == CONDITION_GOOD)) {
if ((status == SAM_STAT_GOOD) || (status == SAM_STAT_CONDITION_MET)) {
int buffer_size;
uint8_t *buffer = NULL;
@@ -434,7 +434,7 @@ int tape_done(struct scst_cmd *cmd)
break;
}
}
else if ((masked_status == CHECK_CONDITION) &&
else if ((status == SAM_STAT_CHECK_CONDITION) &&
SCST_SENSE_VALID(cmd->sense_buffer))
{
TRACE_DBG("%s", "Extended sense");
@@ -504,7 +504,6 @@ int tape_exec(struct scst_cmd *cmd)
case READ_6:
res = SCST_EXEC_COMPLETED;
cmd->status = 0;
cmd->masked_status = 0;
cmd->msg_status = 0;
cmd->host_status = DID_OK;
cmd->driver_status = 0;

View File

@@ -43,7 +43,6 @@ void scst_set_cmd_error_status(struct scst_cmd *cmd, int status)
TRACE_ENTRY();
cmd->status = status;
cmd->masked_status = status >> 1;
cmd->host_status = DID_OK;
cmd->data_direction = SCST_DATA_NONE;

View File

@@ -1062,7 +1062,6 @@ static void scst_check_sense(struct scst_cmd *cmd, const uint8_t *rq_sense,
TRACE(TRACE_MGMT, "Retrying cmd %p "
"(tag %d)", cmd, cmd->tag);
cmd->status = 0;
cmd->masked_status = 0;
cmd->msg_status = 0;
cmd->host_status = DID_OK;
cmd->driver_status = 0;
@@ -1127,9 +1126,8 @@ static int scst_check_auto_sense(struct scst_cmd *cmd)
SCST_NO_SENSE(cmd->sense_buffer)))
{
TRACE(TRACE_SCSI|TRACE_MINOR, "CHECK_CONDITION, but no sense: "
"cmd->status=%x, cmd->masked_status=%x, "
"cmd->msg_status=%x, cmd->host_status=%x, "
"cmd->driver_status=%x", cmd->status, cmd->masked_status,
"cmd->status=%x, cmd->msg_status=%x, "
"cmd->host_status=%x, cmd->driver_status=%x", cmd->status,
cmd->msg_status, cmd->host_status, cmd->driver_status);
res = 1;
} else if (unlikely(cmd->host_status)) {
@@ -1158,7 +1156,6 @@ static void scst_do_cmd_done(struct scst_cmd *cmd, int result,
TRACE_ENTRY();
cmd->status = result & 0xff;
cmd->masked_status = status_byte(result);
cmd->msg_status = msg_byte(result);
cmd->host_status = host_byte(result);
cmd->driver_status = driver_byte(result);
@@ -1173,10 +1170,9 @@ static void scst_do_cmd_done(struct scst_cmd *cmd, int result,
}
TRACE(TRACE_SCSI, "result=%x, cmd->status=%x, resid=%d, "
"cmd->masked_status=%x, cmd->msg_status=%x, cmd->host_status=%x, "
"cmd->msg_status=%x, cmd->host_status=%x, "
"cmd->driver_status=%x", result, cmd->status, resid,
cmd->masked_status, cmd->msg_status, cmd->host_status,
cmd->driver_status);
cmd->msg_status, cmd->host_status, cmd->driver_status);
cmd->completed = 1;
@@ -1369,7 +1365,6 @@ static int scst_report_luns_local(struct scst_cmd *cmd)
TRACE_ENTRY();
cmd->status = 0;
cmd->masked_status = 0;
cmd->msg_status = 0;
cmd->host_status = DID_OK;
cmd->driver_status = 0;
@@ -1581,7 +1576,6 @@ static int scst_release_local(struct scst_cmd *cmd)
if (test_bit(SCST_TGT_DEV_RESERVED, &cmd->tgt_dev->tgt_dev_flags)) {
res = SCST_EXEC_COMPLETED;
cmd->status = 0;
cmd->masked_status = 0;
cmd->msg_status = 0;
cmd->host_status = DID_OK;
cmd->driver_status = 0;
@@ -2062,7 +2056,7 @@ static int scst_done_cmd_check(struct scst_cmd *cmd, int *pres)
&cmd->tgt_dev->tgt_dev_flags)) {
struct scst_tgt_dev *tgt_dev_tmp;
TRACE(TRACE_SCSI, "Real RESERVE failed lun=%Ld, status=%x",
(uint64_t)cmd->lun, cmd->masked_status);
(uint64_t)cmd->lun, cmd->status);
TRACE_BUFF_FLAG(TRACE_SCSI, "Sense", cmd->sense_buffer,
sizeof(cmd->sense_buffer));
/* Clearing the reservation */