diff options
Diffstat (limited to 'drivers/scsi/sr.c')
| -rw-r--r-- | drivers/scsi/sr.c | 17 | 
1 files changed, 9 insertions, 8 deletions
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c index 0e1a0f2d2ad..cd350dfc121 100644 --- a/drivers/scsi/sr.c +++ b/drivers/scsi/sr.c @@ -292,7 +292,8 @@ static int sr_done(struct scsi_cmnd *SCpnt)  			if (cd->device->sector_size == 2048)  				error_sector <<= 2;  			error_sector &= ~(block_sectors - 1); -			good_bytes = (error_sector - SCpnt->request->sector) << 9; +			good_bytes = (error_sector - +				      blk_rq_pos(SCpnt->request)) << 9;  			if (good_bytes < 0 || good_bytes >= this_count)  				good_bytes = 0;  			/* @@ -349,8 +350,8 @@ static int sr_prep_fn(struct request_queue *q, struct request *rq)  				cd->disk->disk_name, block));  	if (!cd->device || !scsi_device_online(cd->device)) { -		SCSI_LOG_HLQUEUE(2, printk("Finishing %ld sectors\n", -					rq->nr_sectors)); +		SCSI_LOG_HLQUEUE(2, printk("Finishing %u sectors\n", +					   blk_rq_sectors(rq)));  		SCSI_LOG_HLQUEUE(2, printk("Retry with 0x%p\n", SCpnt));  		goto out;  	} @@ -413,7 +414,7 @@ static int sr_prep_fn(struct request_queue *q, struct request *rq)  	/*  	 * request doesn't start on hw block boundary, add scatter pads  	 */ -	if (((unsigned int)rq->sector % (s_size >> 9)) || +	if (((unsigned int)blk_rq_pos(rq) % (s_size >> 9)) ||  	    (scsi_bufflen(SCpnt) % s_size)) {  		scmd_printk(KERN_NOTICE, SCpnt, "unaligned transfer\n");  		goto out; @@ -422,14 +423,14 @@ static int sr_prep_fn(struct request_queue *q, struct request *rq)  	this_count = (scsi_bufflen(SCpnt) >> 9) / (s_size >> 9); -	SCSI_LOG_HLQUEUE(2, printk("%s : %s %d/%ld 512 byte blocks.\n", +	SCSI_LOG_HLQUEUE(2, printk("%s : %s %d/%u 512 byte blocks.\n",  				cd->cdi.name,  				(rq_data_dir(rq) == WRITE) ?  					"writing" : "reading", -				this_count, rq->nr_sectors)); +				this_count, blk_rq_sectors(rq)));  	SCpnt->cmnd[1] = 0; -	block = (unsigned int)rq->sector / (s_size >> 9); +	block = (unsigned int)blk_rq_pos(rq) / (s_size >> 9);  	if (this_count > 0xffff) {  		this_count = 0xffff; @@ -726,7 +727,7 @@ static void get_sectorsize(struct scsi_cd *cd)  	}  	queue = cd->device->request_queue; -	blk_queue_hardsect_size(queue, sector_size); +	blk_queue_logical_block_size(queue, sector_size);  	return;  }  |