Lines Matching refs:vbd
44 static void xen_vbd_free(struct xen_vbd *vbd);
90 if (!blkif->irq || !blkif->vbd.bdev) in xen_update_blkif_status()
108 err = filemap_write_and_wait(blkif->vbd.bdev->bd_inode->i_mapping); in xen_update_blkif_status()
113 invalidate_inode_pages2(blkif->vbd.bdev->bd_inode->i_mapping); in xen_update_blkif_status()
291 xen_vbd_free(&blkif->vbd); in xen_blkif_free()
406 static void xen_vbd_free(struct xen_vbd *vbd) in xen_vbd_free() argument
408 if (vbd->bdev) in xen_vbd_free()
409 blkdev_put(vbd->bdev, vbd->readonly ? FMODE_READ : FMODE_WRITE); in xen_vbd_free()
410 vbd->bdev = NULL; in xen_vbd_free()
417 struct xen_vbd *vbd; in xen_vbd_create() local
421 vbd = &blkif->vbd; in xen_vbd_create()
422 vbd->handle = handle; in xen_vbd_create()
423 vbd->readonly = readonly; in xen_vbd_create()
424 vbd->type = 0; in xen_vbd_create()
426 vbd->pdevice = MKDEV(major, minor); in xen_vbd_create()
428 bdev = blkdev_get_by_dev(vbd->pdevice, vbd->readonly ? in xen_vbd_create()
433 vbd->pdevice); in xen_vbd_create()
437 vbd->bdev = bdev; in xen_vbd_create()
438 if (vbd->bdev->bd_disk == NULL) { in xen_vbd_create()
440 vbd->pdevice); in xen_vbd_create()
441 xen_vbd_free(vbd); in xen_vbd_create()
444 vbd->size = vbd_sz(vbd); in xen_vbd_create()
446 if (vbd->bdev->bd_disk->flags & GENHD_FL_CD || cdrom) in xen_vbd_create()
447 vbd->type |= VDISK_CDROM; in xen_vbd_create()
448 if (vbd->bdev->bd_disk->flags & GENHD_FL_REMOVABLE) in xen_vbd_create()
449 vbd->type |= VDISK_REMOVABLE; in xen_vbd_create()
453 vbd->flush_support = true; in xen_vbd_create()
456 vbd->discard_secure = true; in xen_vbd_create()
509 struct block_device *bdev = be->blkif->vbd.bdev; in xen_blkbk_discard()
536 blkif->vbd.discard_secure); in xen_blkbk_discard()
685 xen_vbd_free(&be->blkif->vbd); in backend_changed()
794 xen_blkbk_flush_diskcache(xbt, be, be->blkif->vbd.flush_support); in connect()
798 xen_blkbk_barrier(xbt, be, be->blkif->vbd.flush_support); in connect()
813 (unsigned long long)vbd_sz(&be->blkif->vbd)); in connect()
822 be->blkif->vbd.type | in connect()
823 (be->blkif->vbd.readonly ? VDISK_READONLY : 0)); in connect()
831 bdev_logical_block_size(be->blkif->vbd.bdev)); in connect()
838 bdev_physical_block_size(be->blkif->vbd.bdev)); in connect()
901 be->blkif->vbd.feature_gnt_persistent = pers_grants; in connect_ring()
902 be->blkif->vbd.overflow_max_grants = 0; in connect_ring()