[PATCH 11/12] target: remove the task_padded_sg field in se_task

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This field is only check in one place and not actually needed there.

Rationale:
 - transport_do_task_sg_chain asserts that we have task_sg_chaining
   set early on
 - we only make use of the sg_prev_nents field we calculate based on it
   if there is another sg list that gets chained onto this one, which
   never happens for the last (or only) task.

Signed-off-by: Christoph Hellwig <hch@xxxxxx>

Index: lio-core/drivers/target/target_core_transport.c
===================================================================
--- lio-core.orig/drivers/target/target_core_transport.c	2011-10-12 13:10:14.633774070 +0200
+++ lio-core/drivers/target/target_core_transport.c	2011-10-12 13:10:18.237271612 +0200
@@ -3891,15 +3891,13 @@ void transport_do_task_sg_chain(struct s
 		/*
 		 * For the padded tasks, use the extra SGL vector allocated
 		 * in transport_allocate_data_tasks() for the sg_prev_nents
-		 * offset into sg_chain() above..  The last task of a
-		 * multi-task list, or a single task will not have
-		 * task->task_sg_padded set..
+		 * offset into sg_chain() above.
+		 *
+		 * We do not need the padding for the last task (or a single
+		 * task), but in that case we will never use the sg_prev_nents
+		 * value below which would be incorrect.
 		 */
-		if (task->task_padded_sg)
-			sg_prev_nents = (task->task_sg_nents + 1);
-		else
-			sg_prev_nents = task->task_sg_nents;
-
+		sg_prev_nents = (task->task_sg_nents + 1);
 		sg_prev = task->task_sg;
 	}
 	/*
@@ -3986,7 +3984,6 @@ static int transport_allocate_data_tasks
 		 */
 		if (cmd->se_tfo->task_sg_chaining && (i < (task_count - 1))) {
 			task_sg_nents_padded = (task->task_sg_nents + 1);
-			task->task_padded_sg = 1;
 		} else
 			task_sg_nents_padded = task->task_sg_nents;
 
Index: lio-core/include/target/target_core_base.h
===================================================================
--- lio-core.orig/include/target/target_core_base.h	2011-10-12 13:10:14.633774070 +0200
+++ lio-core/include/target/target_core_base.h	2011-10-12 13:10:18.241272761 +0200
@@ -409,7 +409,6 @@ struct se_task {
 	u8		task_scsi_status;
 	u8		task_flags;
 	int		task_error_status;
-	bool		task_padded_sg;
 	unsigned long long	task_lba;
 	u32		task_sectors;
 	u32		task_size;

--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux SCSI]     [Kernel Newbies]     [Linux SCSI Target Infrastructure]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Device Mapper]

  Powered by Linux