Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2d3a4b51 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Nicholas Bellinger
Browse files

target: remove the t_tasks_fua se_cmd field



And use a SCF_FUA flag instead.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent aad13ca2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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;
+10 −5
Original line number Diff line number Diff line
@@ -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, &sector_ret);
+1 −1
Original line number Diff line number Diff line
@@ -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;