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
					
				
			
		
					 4 changed files with 13 additions and 8 deletions
				
			
		| 
						 | 
				
			
			@ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue