mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
target: remove the t_tasks_fua se_cmd field
And use a SCF_FUA flag instead. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
aad13ca20d
commit
2d3a4b51df
@ -438,7 +438,7 @@ static int fd_do_task(struct se_task *task)
|
||||
if (ret > 0 &&
|
||||
dev->se_sub_dev->se_dev_attrib.emulate_write_cache > 0 &&
|
||||
dev->se_sub_dev->se_dev_attrib.emulate_fua_write > 0 &&
|
||||
cmd->t_tasks_fua) {
|
||||
(cmd->se_cmd_flags & SCF_FUA)) {
|
||||
/*
|
||||
* We might need to be a bit smarter here
|
||||
* and return some sense data to let the initiator
|
||||
|
@ -531,7 +531,7 @@ static int iblock_do_task(struct se_task *task)
|
||||
*/
|
||||
if (dev->se_sub_dev->se_dev_attrib.emulate_write_cache == 0 ||
|
||||
(dev->se_sub_dev->se_dev_attrib.emulate_fua_write > 0 &&
|
||||
task->task_se_cmd->t_tasks_fua))
|
||||
(cmd->se_cmd_flags & SCF_FUA)))
|
||||
rw = WRITE_FUA;
|
||||
else
|
||||
rw = WRITE;
|
||||
|
@ -2572,7 +2572,8 @@ static int transport_generic_cmd_sequencer(
|
||||
goto out_unsupported_cdb;
|
||||
size = transport_get_size(sectors, cdb, cmd);
|
||||
cmd->t_task_lba = transport_lba_32(cdb);
|
||||
cmd->t_tasks_fua = (cdb[1] & 0x8);
|
||||
if (cdb[1] & 0x8)
|
||||
cmd->se_cmd_flags |= SCF_FUA;
|
||||
cmd->se_cmd_flags |= SCF_SCSI_DATA_SG_IO_CDB;
|
||||
break;
|
||||
case WRITE_12:
|
||||
@ -2581,7 +2582,8 @@ static int transport_generic_cmd_sequencer(
|
||||
goto out_unsupported_cdb;
|
||||
size = transport_get_size(sectors, cdb, cmd);
|
||||
cmd->t_task_lba = transport_lba_32(cdb);
|
||||
cmd->t_tasks_fua = (cdb[1] & 0x8);
|
||||
if (cdb[1] & 0x8)
|
||||
cmd->se_cmd_flags |= SCF_FUA;
|
||||
cmd->se_cmd_flags |= SCF_SCSI_DATA_SG_IO_CDB;
|
||||
break;
|
||||
case WRITE_16:
|
||||
@ -2590,7 +2592,8 @@ static int transport_generic_cmd_sequencer(
|
||||
goto out_unsupported_cdb;
|
||||
size = transport_get_size(sectors, cdb, cmd);
|
||||
cmd->t_task_lba = transport_lba_64(cdb);
|
||||
cmd->t_tasks_fua = (cdb[1] & 0x8);
|
||||
if (cdb[1] & 0x8)
|
||||
cmd->se_cmd_flags |= SCF_FUA;
|
||||
cmd->se_cmd_flags |= SCF_SCSI_DATA_SG_IO_CDB;
|
||||
break;
|
||||
case XDWRITEREAD_10:
|
||||
@ -2614,7 +2617,8 @@ static int transport_generic_cmd_sequencer(
|
||||
* Setup BIDI XOR callback to be run after I/O completion.
|
||||
*/
|
||||
cmd->transport_complete_callback = &transport_xor_callback;
|
||||
cmd->t_tasks_fua = (cdb[1] & 0x8);
|
||||
if (cdb[1] & 0x8)
|
||||
cmd->se_cmd_flags |= SCF_FUA;
|
||||
break;
|
||||
case VARIABLE_LENGTH_CMD:
|
||||
service_action = get_unaligned_be16(&cdb[8]);
|
||||
@ -2642,7 +2646,8 @@ static int transport_generic_cmd_sequencer(
|
||||
* completion.
|
||||
*/
|
||||
cmd->transport_complete_callback = &transport_xor_callback;
|
||||
cmd->t_tasks_fua = (cdb[10] & 0x8);
|
||||
if (cdb[1] & 0x8)
|
||||
cmd->se_cmd_flags |= SCF_FUA;
|
||||
break;
|
||||
case WRITE_SAME_32:
|
||||
sectors = transport_get_sectors_32(cdb, cmd, §or_ret);
|
||||
|
@ -103,6 +103,7 @@ enum se_cmd_flags_table {
|
||||
SCF_SCSI_NON_DATA_CDB = 0x00000040,
|
||||
SCF_SCSI_CDB_EXCEPTION = 0x00000080,
|
||||
SCF_SCSI_RESERVATION_CONFLICT = 0x00000100,
|
||||
SCF_FUA = 0x00000200,
|
||||
SCF_SE_LUN_CMD = 0x00000800,
|
||||
SCF_SE_ALLOW_EOO = 0x00001000,
|
||||
SCF_SENT_CHECK_CONDITION = 0x00004000,
|
||||
@ -458,7 +459,6 @@ struct se_cmd {
|
||||
unsigned char __t_task_cdb[TCM_MAX_COMMAND_SIZE];
|
||||
unsigned long long t_task_lba;
|
||||
int t_tasks_failed;
|
||||
int t_tasks_fua;
|
||||
bool t_tasks_bidi;
|
||||
u32 t_tasks_sg_chained_no;
|
||||
atomic_t t_fe_count;
|
||||
|
Loading…
Reference in New Issue
Block a user