@@ -81,7 +81,7 @@ static void xen_update_blkif_status(struct xen_blkif *blkif)
8181 int i ;
8282
8383 /* Not ready to connect? */
84- if (!blkif -> rings || !blkif -> rings [0 ].irq || !blkif -> vbd .bdev_handle )
84+ if (!blkif -> rings || !blkif -> rings [0 ].irq || !blkif -> vbd .bdev_file )
8585 return ;
8686
8787 /* Already connected? */
@@ -99,13 +99,12 @@ static void xen_update_blkif_status(struct xen_blkif *blkif)
9999 return ;
100100 }
101101
102- err = sync_blockdev (blkif -> vbd .bdev_handle -> bdev );
102+ err = sync_blockdev (file_bdev ( blkif -> vbd .bdev_file ) );
103103 if (err ) {
104104 xenbus_dev_error (blkif -> be -> dev , err , "block flush" );
105105 return ;
106106 }
107- invalidate_inode_pages2 (
108- blkif -> vbd .bdev_handle -> bdev -> bd_inode -> i_mapping );
107+ invalidate_inode_pages2 (blkif -> vbd .bdev_file -> f_mapping );
109108
110109 for (i = 0 ; i < blkif -> nr_rings ; i ++ ) {
111110 ring = & blkif -> rings [i ];
@@ -473,17 +472,17 @@ static void xenvbd_sysfs_delif(struct xenbus_device *dev)
473472
474473static void xen_vbd_free (struct xen_vbd * vbd )
475474{
476- if (vbd -> bdev_handle )
477- bdev_release (vbd -> bdev_handle );
478- vbd -> bdev_handle = NULL ;
475+ if (vbd -> bdev_file )
476+ fput (vbd -> bdev_file );
477+ vbd -> bdev_file = NULL ;
479478}
480479
481480static int xen_vbd_create (struct xen_blkif * blkif , blkif_vdev_t handle ,
482481 unsigned major , unsigned minor , int readonly ,
483482 int cdrom )
484483{
485484 struct xen_vbd * vbd ;
486- struct bdev_handle * bdev_handle ;
485+ struct file * bdev_file ;
487486
488487 vbd = & blkif -> vbd ;
489488 vbd -> handle = handle ;
@@ -492,32 +491,32 @@ static int xen_vbd_create(struct xen_blkif *blkif, blkif_vdev_t handle,
492491
493492 vbd -> pdevice = MKDEV (major , minor );
494493
495- bdev_handle = bdev_open_by_dev (vbd -> pdevice , vbd -> readonly ?
494+ bdev_file = bdev_file_open_by_dev (vbd -> pdevice , vbd -> readonly ?
496495 BLK_OPEN_READ : BLK_OPEN_WRITE , NULL , NULL );
497496
498- if (IS_ERR (bdev_handle )) {
497+ if (IS_ERR (bdev_file )) {
499498 pr_warn ("xen_vbd_create: device %08x could not be opened\n" ,
500499 vbd -> pdevice );
501500 return - ENOENT ;
502501 }
503502
504- vbd -> bdev_handle = bdev_handle ;
505- if (vbd -> bdev_handle -> bdev -> bd_disk == NULL ) {
503+ vbd -> bdev_file = bdev_file ;
504+ if (file_bdev ( vbd -> bdev_file ) -> bd_disk == NULL ) {
506505 pr_warn ("xen_vbd_create: device %08x doesn't exist\n" ,
507506 vbd -> pdevice );
508507 xen_vbd_free (vbd );
509508 return - ENOENT ;
510509 }
511510 vbd -> size = vbd_sz (vbd );
512511
513- if (cdrom || disk_to_cdi (vbd -> bdev_handle -> bdev -> bd_disk ))
512+ if (cdrom || disk_to_cdi (file_bdev ( vbd -> bdev_file ) -> bd_disk ))
514513 vbd -> type |= VDISK_CDROM ;
515- if (vbd -> bdev_handle -> bdev -> bd_disk -> flags & GENHD_FL_REMOVABLE )
514+ if (file_bdev ( vbd -> bdev_file ) -> bd_disk -> flags & GENHD_FL_REMOVABLE )
516515 vbd -> type |= VDISK_REMOVABLE ;
517516
518- if (bdev_write_cache (bdev_handle -> bdev ))
517+ if (bdev_write_cache (file_bdev ( bdev_file ) ))
519518 vbd -> flush_support = true;
520- if (bdev_max_secure_erase_sectors (bdev_handle -> bdev ))
519+ if (bdev_max_secure_erase_sectors (file_bdev ( bdev_file ) ))
521520 vbd -> discard_secure = true;
522521
523522 pr_debug ("Successful creation of handle=%04x (dom=%u)\n" ,
@@ -570,7 +569,7 @@ static void xen_blkbk_discard(struct xenbus_transaction xbt, struct backend_info
570569 struct xen_blkif * blkif = be -> blkif ;
571570 int err ;
572571 int state = 0 ;
573- struct block_device * bdev = be -> blkif -> vbd .bdev_handle -> bdev ;
572+ struct block_device * bdev = file_bdev ( be -> blkif -> vbd .bdev_file ) ;
574573
575574 if (!xenbus_read_unsigned (dev -> nodename , "discard-enable" , 1 ))
576575 return ;
@@ -932,15 +931,15 @@ static void connect(struct backend_info *be)
932931 }
933932 err = xenbus_printf (xbt , dev -> nodename , "sector-size" , "%lu" ,
934933 (unsigned long )bdev_logical_block_size (
935- be -> blkif -> vbd .bdev_handle -> bdev ));
934+ file_bdev ( be -> blkif -> vbd .bdev_file ) ));
936935 if (err ) {
937936 xenbus_dev_fatal (dev , err , "writing %s/sector-size" ,
938937 dev -> nodename );
939938 goto abort ;
940939 }
941940 err = xenbus_printf (xbt , dev -> nodename , "physical-sector-size" , "%u" ,
942941 bdev_physical_block_size (
943- be -> blkif -> vbd .bdev_handle -> bdev ));
942+ file_bdev ( be -> blkif -> vbd .bdev_file ) ));
944943 if (err )
945944 xenbus_dev_error (dev , err , "writing %s/physical-sector-size" ,
946945 dev -> nodename );
0 commit comments