struct block_device *bdev;
        int rc;
 
-       bdev = bdget_disk(block->gdp, 0);
-       if (!bdev) {
-               DBF_DEV_EVENT(DBF_ERR, block->base, "%s",
-                             "scan partitions error, bdget returned NULL");
-               return -ENODEV;
-       }
-
-       rc = blkdev_get(bdev, FMODE_READ, NULL);
-       if (rc < 0) {
+       bdev = blkdev_get_by_dev(disk_devt(block->gdp), FMODE_READ, NULL);
+       if (IS_ERR(bdev)) {
                DBF_DEV_EVENT(DBF_ERR, block->base,
-                             "scan partitions error, blkdev_get returned %d",
-                             rc);
+                             "scan partitions error, blkdev_get returned %ld",
+                             PTR_ERR(bdev));
                return -ENODEV;
        }