Merge tag 'for-linus-5.11-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / drivers / block / xen-blkfront.c
index 1ee9545ea2f1199c3661377fb1fb45543075657f..e1c6798889f48afe9e6fc14a8ef5d93f919d365c 100644 (file)
@@ -2154,7 +2154,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);
 
@@ -2364,7 +2364,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:
@@ -2513,7 +2513,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);
@@ -2590,19 +2590,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
@@ -2614,7 +2606,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);
        }
@@ -2623,14 +2615,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);
 }