Lines Matching refs:vbd
36 static void xen_vbd_free(struct xen_vbd *vbd);
84 if (!blkif->rings || !blkif->rings[0].irq || !blkif->vbd.bdev) in xen_update_blkif_status()
102 err = filemap_write_and_wait(blkif->vbd.bdev->bd_inode->i_mapping); in xen_update_blkif_status()
107 invalidate_inode_pages2(blkif->vbd.bdev->bd_inode->i_mapping); in xen_update_blkif_status()
348 xen_vbd_free(&blkif->vbd); in xen_blkif_free()
473 static void xen_vbd_free(struct xen_vbd *vbd) in xen_vbd_free() argument
475 if (vbd->bdev) in xen_vbd_free()
476 blkdev_put(vbd->bdev, vbd->readonly ? FMODE_READ : FMODE_WRITE); in xen_vbd_free()
477 vbd->bdev = NULL; in xen_vbd_free()
484 struct xen_vbd *vbd; in xen_vbd_create() local
488 vbd = &blkif->vbd; in xen_vbd_create()
489 vbd->handle = handle; in xen_vbd_create()
490 vbd->readonly = readonly; in xen_vbd_create()
491 vbd->type = 0; in xen_vbd_create()
493 vbd->pdevice = MKDEV(major, minor); in xen_vbd_create()
495 bdev = blkdev_get_by_dev(vbd->pdevice, vbd->readonly ? in xen_vbd_create()
500 vbd->pdevice); in xen_vbd_create()
504 vbd->bdev = bdev; in xen_vbd_create()
505 if (vbd->bdev->bd_disk == NULL) { in xen_vbd_create()
507 vbd->pdevice); in xen_vbd_create()
508 xen_vbd_free(vbd); in xen_vbd_create()
511 vbd->size = vbd_sz(vbd); in xen_vbd_create()
513 if (vbd->bdev->bd_disk->flags & GENHD_FL_CD || cdrom) in xen_vbd_create()
514 vbd->type |= VDISK_CDROM; in xen_vbd_create()
515 if (vbd->bdev->bd_disk->flags & GENHD_FL_REMOVABLE) in xen_vbd_create()
516 vbd->type |= VDISK_REMOVABLE; in xen_vbd_create()
520 vbd->flush_support = true; in xen_vbd_create()
523 vbd->discard_secure = true; in xen_vbd_create()
577 struct block_device *bdev = be->blkif->vbd.bdev; in xen_blkbk_discard()
602 blkif->vbd.discard_secure); in xen_blkbk_discard()
774 xen_vbd_free(&be->blkif->vbd); in backend_changed()
907 xen_blkbk_flush_diskcache(xbt, be, be->blkif->vbd.flush_support); in connect()
911 xen_blkbk_barrier(xbt, be, be->blkif->vbd.flush_support); in connect()
914 be->blkif->vbd.feature_gnt_persistent_parm); in connect()
922 (unsigned long long)vbd_sz(&be->blkif->vbd)); in connect()
931 be->blkif->vbd.type | in connect()
932 (be->blkif->vbd.readonly ? VDISK_READONLY : 0)); in connect()
940 bdev_logical_block_size(be->blkif->vbd.bdev)); in connect()
947 bdev_physical_block_size(be->blkif->vbd.bdev)); in connect()
1092 blkif->vbd.feature_gnt_persistent_parm = feature_persistent; in connect_ring()
1093 blkif->vbd.feature_gnt_persistent = in connect_ring()
1094 blkif->vbd.feature_gnt_persistent_parm && in connect_ring()
1097 blkif->vbd.overflow_max_grants = 0; in connect_ring()
1119 blkif->vbd.feature_gnt_persistent ? "persistent grants" : ""); in connect_ring()