]> Pileus Git - ~andy/linux/blobdiff - drivers/block/xen-blkfront.c
nfsd: fix lost nfserrno() call in nfsd_setattr()
[~andy/linux] / drivers / block / xen-blkfront.c
index c4a4c900628891c31fec541277cb7ffea9a3e68b..8dcfb54f160302e0e1d91c232387f758b2f8e0f6 100644 (file)
@@ -1356,7 +1356,7 @@ static int blkfront_probe(struct xenbus_device *dev,
                char *type;
                int len;
                /* no unplug has been done: do not hook devices != xen vbds */
-               if (xen_platform_pci_unplug & XEN_UNPLUG_UNNECESSARY) {
+               if (xen_has_pv_and_legacy_disk_devices()) {
                        int major;
 
                        if (!VDEV_IS_EXTENDED(vdevice))
@@ -1547,7 +1547,7 @@ static int blkif_recover(struct blkfront_info *info)
                        for (i = 0; i < pending; i++) {
                                offset = (i * segs * PAGE_SIZE) >> 9;
                                size = min((unsigned int)(segs * PAGE_SIZE) >> 9,
-                                          (unsigned int)(bio->bi_size >> 9) - offset);
+                                          (unsigned int)bio_sectors(bio) - offset);
                                cloned_bio = bio_clone(bio, GFP_NOIO);
                                BUG_ON(cloned_bio == NULL);
                                bio_trim(cloned_bio, offset, size);
@@ -2079,7 +2079,7 @@ static int __init xlblk_init(void)
        if (!xen_domain())
                return -ENODEV;
 
-       if (xen_hvm_domain() && !xen_platform_pci_unplug)
+       if (!xen_has_pv_disk_devices())
                return -ENODEV;
 
        if (register_blkdev(XENVBD_MAJOR, DEV_NAME)) {