Merge tag 'arm-soc-dt-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[linux-2.6-microblaze.git] / drivers / block / xen-blkfront.c
index 48629d3..188e0b4 100644 (file)
@@ -2153,7 +2153,7 @@ static void blkfront_closing(struct blkfront_info *info)
        }
 
        if (info->gd)
-               bdev = bdget_disk(info->gd, 0);
+               bdev = bdgrab(info->gd->part0);
 
        mutex_unlock(&info->mutex);
 
@@ -2370,7 +2370,7 @@ static void blkfront_connect(struct blkfront_info *info)
                        return;
                printk(KERN_INFO "Setting capacity to %Lu\n",
                       sectors);
-               set_capacity_revalidate_and_notify(info->gd, sectors, true);
+               set_capacity_and_notify(info->gd, sectors);
 
                return;
        case BLKIF_STATE_SUSPENDED:
@@ -2518,7 +2518,7 @@ static int blkfront_remove(struct xenbus_device *xbdev)
 
        disk = info->gd;
        if (disk)
-               bdev = bdget_disk(disk, 0);
+               bdev = bdgrab(disk->part0);
 
        info->xbdev = NULL;
        mutex_unlock(&info->mutex);
@@ -2595,19 +2595,11 @@ out:
 static void blkif_release(struct gendisk *disk, fmode_t mode)
 {
        struct blkfront_info *info = disk->private_data;
-       struct block_device *bdev;
        struct xenbus_device *xbdev;
 
        mutex_lock(&blkfront_mutex);
-
-       bdev = bdget_disk(disk, 0);
-
-       if (!bdev) {
-               WARN(1, "Block device %s yanked out from us!\n", disk->disk_name);
+       if (disk->part0->bd_openers)
                goto out_mutex;
-       }
-       if (bdev->bd_openers)
-               goto out;
 
        /*
         * Check if we have been instructed to close. We will have
@@ -2619,7 +2611,7 @@ static void blkif_release(struct gendisk *disk, fmode_t mode)
 
        if (xbdev && xbdev->state == XenbusStateClosing) {
                /* pending switch to state closed */
-               dev_info(disk_to_dev(bdev->bd_disk), "releasing disk\n");
+               dev_info(disk_to_dev(disk), "releasing disk\n");
                xlvbd_release_gendisk(info);
                xenbus_frontend_closed(info->xbdev);
        }
@@ -2628,14 +2620,12 @@ static void blkif_release(struct gendisk *disk, fmode_t mode)
 
        if (!xbdev) {
                /* sudden device removal */
-               dev_info(disk_to_dev(bdev->bd_disk), "releasing disk\n");
+               dev_info(disk_to_dev(disk), "releasing disk\n");
                xlvbd_release_gendisk(info);
                disk->private_data = NULL;
                free_info(info);
        }
 
-out:
-       bdput(bdev);
 out_mutex:
        mutex_unlock(&blkfront_mutex);
 }