Lines Matching refs:be

38 struct xenbus_device *xen_blkbk_xenbus(struct backend_info *be)
40 return be->dev;
58 struct xenbus_device *dev = blkif->be->dev;
88 if (blkif->be->dev->state == XenbusStateConnected)
92 connect(blkif->be);
93 if (blkif->be->dev->state != XenbusStateConnected)
98 xenbus_dev_error(blkif->be->dev, err, "get blkback dev name");
104 xenbus_dev_error(blkif->be->dev, err, "block flush");
115 xenbus_dev_fatal(blkif->be->dev, err,
180 * Because freeing back to the cache may be deferred, it is not
205 err = xenbus_map_ring_valloc(blkif->be->dev, gref, nr_grefs,
253 err = bind_interdomain_evtchn_to_irqhandler_lateeoi(blkif->be->dev,
262 xenbus_unmap_ring_vfree(blkif->be->dev, ring->blk_ring);
301 xenbus_unmap_ring_vfree(blkif->be->dev, ring->blk_ring);
349 kfree(blkif->be->mode);
350 kfree(blkif->be);
384 struct backend_info *be = dev_get_drvdata(&dev->dev); \
385 struct xen_blkif *blkif = be->blkif; \
433 struct backend_info *be = dev_get_drvdata(&dev->dev); \
439 VBD_SHOW(physical_device, "%x:%x\n", be->major, be->minor);
440 VBD_SHOW(mode, "%s\n", be->mode);
498 pr_warn("xen_vbd_create: device %08x could not be opened\n",
529 struct backend_info *be = dev_get_drvdata(&dev->dev);
533 if (be->major || be->minor)
536 if (be->backend_watch.node) {
537 unregister_xenbus_watch(&be->backend_watch);
538 kfree(be->backend_watch.node);
539 be->backend_watch.node = NULL;
544 if (be->blkif) {
545 xen_blkif_disconnect(be->blkif);
548 xen_blkif_put(be->blkif);
553 struct backend_info *be, int state)
555 struct xenbus_device *dev = be->dev;
566 static void xen_blkbk_discard(struct xenbus_transaction xbt, struct backend_info *be)
568 struct xenbus_device *dev = be->dev;
569 struct xen_blkif *blkif = be->blkif;
572 struct block_device *bdev = file_bdev(be->blkif->vbd.bdev_file);
609 struct backend_info *be, int state)
611 struct xenbus_device *dev = be->dev;
631 struct backend_info *be = kzalloc(sizeof(struct backend_info),
637 if (!be) {
642 be->dev = dev;
643 dev_set_drvdata(&dev->dev, be);
645 be->blkif = xen_blkif_alloc(dev->otherend_id);
646 if (IS_ERR(be->blkif)) {
647 err = PTR_ERR(be->blkif);
648 be->blkif = NULL;
668 be->blkif->be = be;
670 err = xenbus_watch_pathfmt(dev, &be->backend_watch, NULL,
704 struct backend_info *be
706 struct xenbus_device *dev = be->dev;
728 if (be->major | be->minor) {
729 if (be->major != major || be->minor != minor)
731 be->major, be->minor, major, minor);
735 be->mode = xenbus_read(XBT_NIL, dev->nodename, "mode", NULL);
736 if (IS_ERR(be->mode)) {
737 err = PTR_ERR(be->mode);
738 be->mode = NULL;
752 kfree(be->mode);
753 be->mode = NULL;
757 be->major = major;
758 be->minor = minor;
760 err = xen_vbd_create(be->blkif, handle, major, minor,
761 !strchr(be->mode, 'w'), cdrom);
768 xen_vbd_free(&be->blkif->vbd);
774 kfree(be->mode);
775 be->mode = NULL;
776 be->major = 0;
777 be->minor = 0;
780 xen_update_blkif_status(be->blkif);
790 struct backend_info *be = dev_get_drvdata(&dev->dev);
817 err = xen_blkif_disconnect(be->blkif);
823 err = connect_ring(be);
826 * Clean up so that memory resources can be used by
829 xen_blkif_disconnect(be->blkif);
832 xen_update_blkif_status(be->blkif);
840 xen_blkif_disconnect(be->blkif);
870 struct backend_info *be = dev_get_drvdata(&dev->dev);
872 if (!be)
874 be->blkif->buffer_squeeze_end = jiffies +
884 static void connect(struct backend_info *be)
888 struct xenbus_device *dev = be->dev;
901 xen_blkbk_flush_diskcache(xbt, be, be->blkif->vbd.flush_support);
903 xen_blkbk_discard(xbt, be);
905 xen_blkbk_barrier(xbt, be, be->blkif->vbd.flush_support);
908 be->blkif->vbd.feature_gnt_persistent_parm);
916 (unsigned long long)vbd_sz(&be->blkif->vbd));
925 be->blkif->vbd.type |
926 (be->blkif->vbd.readonly ? VDISK_READONLY : 0));
934 file_bdev(be->blkif->vbd.bdev_file)));
942 file_bdev(be->blkif->vbd.bdev_file)));
972 struct xenbus_device *dev = blkif->be->dev;
1057 static int connect_ring(struct backend_info *be)
1059 struct xenbus_device *dev = be->dev;
1060 struct xen_blkif *blkif = be->blkif;