ide: remove ->end_request method
* Handle completion of private driver requests explicitly for ide_floppy and ide_tape media in ide_kill_rq(). * Remove no longer needed ->end_request method. There should be no functional changes caused by this patch. Acked-by: Borislav Petkov <petkovbb@gmail.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
		
							parent
							
								
									313afea7f2
								
							
						
					
					
						commit
						3ee38302ff
					
				| @ -1834,7 +1834,6 @@ static struct ide_driver ide_cdrom_driver = { | ||||
| 	.remove			= ide_cd_remove, | ||||
| 	.version		= IDECD_VERSION, | ||||
| 	.do_request		= ide_cd_do_request, | ||||
| 	.end_request		= ide_end_request, | ||||
| #ifdef CONFIG_IDE_PROC_FS | ||||
| 	.proc_entries		= ide_cd_proc_entries, | ||||
| 	.proc_devsets		= ide_cd_proc_devsets, | ||||
|  | ||||
| @ -734,6 +734,5 @@ const struct ide_disk_ops ide_ata_disk_ops = { | ||||
| 	.init_media	= ide_disk_init_media, | ||||
| 	.set_doorlock	= ide_disk_set_doorlock, | ||||
| 	.do_request	= ide_do_rw_disk, | ||||
| 	.end_request	= ide_end_request, | ||||
| 	.ioctl		= ide_disk_ioctl, | ||||
| }; | ||||
|  | ||||
| @ -61,25 +61,6 @@ | ||||
|  */ | ||||
| #define IDEFLOPPY_PC_DELAY	(HZ/20)	/* default delay for ZIP 100 (50ms) */ | ||||
| 
 | ||||
| /*
 | ||||
|  * Used to finish servicing a private request. | ||||
|  */ | ||||
| static int ide_floppy_end_request(ide_drive_t *drive, int uptodate, int nsecs) | ||||
| { | ||||
| 	struct request *rq = drive->hwif->rq; | ||||
| 
 | ||||
| 	ide_debug_log(IDE_DBG_FUNC, "enter"); | ||||
| 
 | ||||
| 	if (uptodate == 0) | ||||
| 		drive->failed_pc = NULL; | ||||
| 
 | ||||
| 	rq->errors = uptodate ? 0 : IDE_DRV_ERROR_GENERAL; | ||||
| 
 | ||||
| 	ide_complete_rq(drive, 0); | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| static void idefloppy_update_buffers(ide_drive_t *drive, | ||||
| 				struct ide_atapi_pc *pc) | ||||
| { | ||||
| @ -560,6 +541,5 @@ const struct ide_disk_ops ide_atapi_disk_ops = { | ||||
| 	.init_media	= ide_floppy_init_media, | ||||
| 	.set_doorlock	= ide_set_media_lock, | ||||
| 	.do_request	= ide_floppy_do_request, | ||||
| 	.end_request	= ide_floppy_end_request, | ||||
| 	.ioctl		= ide_floppy_ioctl, | ||||
| }; | ||||
|  | ||||
| @ -145,11 +145,6 @@ static ide_startstop_t ide_gd_do_request(ide_drive_t *drive, | ||||
| 	return drive->disk_ops->do_request(drive, rq, sector); | ||||
| } | ||||
| 
 | ||||
| static int ide_gd_end_request(ide_drive_t *drive, int uptodate, int nrsecs) | ||||
| { | ||||
| 	return drive->disk_ops->end_request(drive, uptodate, nrsecs); | ||||
| } | ||||
| 
 | ||||
| static struct ide_driver ide_gd_driver = { | ||||
| 	.gen_driver = { | ||||
| 		.owner		= THIS_MODULE, | ||||
| @ -162,7 +157,6 @@ static struct ide_driver ide_gd_driver = { | ||||
| 	.shutdown		= ide_gd_shutdown, | ||||
| 	.version		= IDE_GD_VERSION, | ||||
| 	.do_request		= ide_gd_do_request, | ||||
| 	.end_request		= ide_gd_end_request, | ||||
| #ifdef CONFIG_IDE_PROC_FS | ||||
| 	.proc_entries		= ide_disk_proc_entries, | ||||
| 	.proc_devsets		= ide_disk_proc_devsets, | ||||
|  | ||||
| @ -178,17 +178,17 @@ EXPORT_SYMBOL(ide_complete_rq); | ||||
| 
 | ||||
| void ide_kill_rq(ide_drive_t *drive, struct request *rq) | ||||
| { | ||||
| 	u8 drv_req = blk_special_request(rq) && rq->rq_disk; | ||||
| 	u8 media = drive->media; | ||||
| 
 | ||||
| 	drive->failed_pc = NULL; | ||||
| 
 | ||||
| 	if (drive->media == ide_tape) | ||||
| 	if ((media == ide_floppy && drv_req) || media == ide_tape) | ||||
| 		rq->errors = IDE_DRV_ERROR_GENERAL; | ||||
| 
 | ||||
| 	if (blk_special_request(rq) && rq->rq_disk) { | ||||
| 		struct ide_driver *drv; | ||||
| 
 | ||||
| 		drv = *(struct ide_driver **)rq->rq_disk->private_data; | ||||
| 		drv->end_request(drive, 0, 0); | ||||
| 	} else | ||||
| 	if ((media == ide_floppy || media == ide_tape) && drv_req) | ||||
| 		ide_complete_rq(drive, 0); | ||||
| 	else | ||||
| 		ide_end_request(drive, 0, 0); | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -461,22 +461,6 @@ static void ide_tape_kfree_buffer(idetape_tape_t *tape) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| static int idetape_end_request(ide_drive_t *drive, int uptodate, int nr_sects) | ||||
| { | ||||
| 	struct request *rq = drive->hwif->rq; | ||||
| 
 | ||||
| 	debug_log(DBG_PROCS, "Enter %s\n", __func__); | ||||
| 
 | ||||
| 	rq->errors = uptodate ? 0 : IDE_DRV_ERROR_GENERAL; | ||||
| 
 | ||||
| 	if (uptodate == 0) | ||||
| 		drive->failed_pc = NULL; | ||||
| 
 | ||||
| 	ide_complete_rq(drive, 0); | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| static void ide_tape_handle_dsc(ide_drive_t *); | ||||
| 
 | ||||
| static void ide_tape_callback(ide_drive_t *drive, int dsc) | ||||
| @ -2306,7 +2290,6 @@ static struct ide_driver idetape_driver = { | ||||
| 	.remove			= ide_tape_remove, | ||||
| 	.version		= IDETAPE_VERSION, | ||||
| 	.do_request		= idetape_do_request, | ||||
| 	.end_request		= idetape_end_request, | ||||
| #ifdef CONFIG_IDE_PROC_FS | ||||
| 	.proc_entries		= ide_tape_proc_entries, | ||||
| 	.proc_devsets		= ide_tape_proc_devsets, | ||||
|  | ||||
| @ -427,7 +427,6 @@ struct ide_disk_ops { | ||||
| 					int); | ||||
| 	ide_startstop_t	(*do_request)(struct ide_drive_s *, struct request *, | ||||
| 				      sector_t); | ||||
| 	int		(*end_request)(struct ide_drive_s *, int, int); | ||||
| 	int		(*ioctl)(struct ide_drive_s *, struct block_device *, | ||||
| 				 fmode_t, unsigned int, unsigned long); | ||||
| }; | ||||
| @ -1098,7 +1097,6 @@ void ide_check_pm_state(ide_drive_t *, struct request *); | ||||
| struct ide_driver { | ||||
| 	const char			*version; | ||||
| 	ide_startstop_t	(*do_request)(ide_drive_t *, struct request *, sector_t); | ||||
| 	int		(*end_request)(ide_drive_t *, int, int); | ||||
| 	struct device_driver	gen_driver; | ||||
| 	int		(*probe)(ide_drive_t *); | ||||
| 	void		(*remove)(ide_drive_t *); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user