forked from mirrors/linux
		
	sd: remove __data_len hack for WRITE SAME
Now that we have the blk_rq_payload_bytes helper available to determine the actual I/O size we don't need to mess around with __data_len for WRITE SAME. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Hannes Reinecke <hare@suse.com> Reviewed-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
		
							parent
							
								
									b131c61d62
								
							
						
					
					
						commit
						f80de881d8
					
				
					 1 changed files with 1 additions and 16 deletions
				
			
		|  | @ -836,7 +836,6 @@ static int sd_setup_write_same_cmnd(struct scsi_cmnd *cmd) | |||
| 	struct bio *bio = rq->bio; | ||||
| 	sector_t sector = blk_rq_pos(rq); | ||||
| 	unsigned int nr_sectors = blk_rq_sectors(rq); | ||||
| 	unsigned int nr_bytes = blk_rq_bytes(rq); | ||||
| 	int ret; | ||||
| 
 | ||||
| 	if (sdkp->device->no_write_same) | ||||
|  | @ -869,21 +868,7 @@ static int sd_setup_write_same_cmnd(struct scsi_cmnd *cmd) | |||
| 
 | ||||
| 	cmd->transfersize = sdp->sector_size; | ||||
| 	cmd->allowed = SD_MAX_RETRIES; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * For WRITE_SAME the data transferred in the DATA IN buffer is | ||||
| 	 * different from the amount of data actually written to the target. | ||||
| 	 * | ||||
| 	 * We set up __data_len to the amount of data transferred from the | ||||
| 	 * DATA IN buffer so that blk_rq_map_sg set up the proper S/G list | ||||
| 	 * to transfer a single sector of data first, but then reset it to | ||||
| 	 * the amount of data to be written right after so that the I/O path | ||||
| 	 * knows how much to actually write. | ||||
| 	 */ | ||||
| 	rq->__data_len = sdp->sector_size; | ||||
| 	ret = scsi_init_io(cmd); | ||||
| 	rq->__data_len = nr_bytes; | ||||
| 	return ret; | ||||
| 	return scsi_init_io(cmd); | ||||
| } | ||||
| 
 | ||||
| static int sd_setup_flush_cmnd(struct scsi_cmnd *cmd) | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Christoph Hellwig
						Christoph Hellwig