4343/*
4444 * file operation structure for tape block frontend
4545 */
46- static int tapeblock_open (struct inode * , struct file * );
47- static int tapeblock_release (struct inode * , struct file * );
48- static int tapeblock_ioctl (struct inode * , struct file * , unsigned int ,
46+ static int tapeblock_open (struct block_device * , fmode_t );
47+ static int tapeblock_release (struct gendisk * , fmode_t );
48+ static int tapeblock_ioctl (struct block_device * , fmode_t , unsigned int ,
4949 unsigned long );
5050static int tapeblock_medium_changed (struct gendisk * );
5151static int tapeblock_revalidate_disk (struct gendisk * );
5252
5353static struct block_device_operations tapeblock_fops = {
5454 .owner = THIS_MODULE ,
55- .__open = tapeblock_open ,
56- .__release = tapeblock_release ,
57- .__ioctl = tapeblock_ioctl ,
55+ .open = tapeblock_open ,
56+ .release = tapeblock_release ,
57+ .locked_ioctl = tapeblock_ioctl ,
5858 .media_changed = tapeblock_medium_changed ,
5959 .revalidate_disk = tapeblock_revalidate_disk ,
6060};
@@ -364,13 +364,12 @@ tapeblock_medium_changed(struct gendisk *disk)
364364 * Block frontend tape device open function.
365365 */
366366static int
367- tapeblock_open (struct inode * inode , struct file * filp )
367+ tapeblock_open (struct block_device * bdev , fmode_t mode )
368368{
369- struct gendisk * disk ;
369+ struct gendisk * disk = bdev -> bd_disk ;
370370 struct tape_device * device ;
371371 int rc ;
372372
373- disk = inode -> i_bdev -> bd_disk ;
374373 device = tape_get_device_reference (disk -> private_data );
375374
376375 if (device -> required_tapemarks ) {
@@ -410,9 +409,8 @@ tapeblock_open(struct inode *inode, struct file *filp)
410409 * we just get the pointer here and release the reference.
411410 */
412411static int
413- tapeblock_release (struct inode * inode , struct file * filp )
412+ tapeblock_release (struct gendisk * disk , fmode_t mode )
414413{
415- struct gendisk * disk = inode -> i_bdev -> bd_disk ;
416414 struct tape_device * device = disk -> private_data ;
417415
418416 tape_state_set (device , TS_IN_USE );
@@ -427,22 +425,21 @@ tapeblock_release(struct inode *inode, struct file *filp)
427425 */
428426static int
429427tapeblock_ioctl (
430- struct inode * inode ,
431- struct file * file ,
428+ struct block_device * bdev ,
429+ fmode_t mode ,
432430 unsigned int command ,
433431 unsigned long arg
434432) {
435433 int rc ;
436434 int minor ;
437- struct gendisk * disk ;
435+ struct gendisk * disk = bdev -> bd_disk ;
438436 struct tape_device * device ;
439437
440438 rc = 0 ;
441- disk = inode -> i_bdev -> bd_disk ;
442439 BUG_ON (!disk );
443440 device = disk -> private_data ;
444441 BUG_ON (!device );
445- minor = iminor ( inode );
442+ minor = MINOR ( bdev -> bd_dev );
446443
447444 DBF_LH (6 , "tapeblock_ioctl(0x%0x)\n" , command );
448445 DBF_LH (6 , "device = %d:%d\n" , tapeblock_major , minor );
0 commit comments