[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] g/c vbd active.



# HG changeset patch
# User cl349@xxxxxxxxxxxxxxxxxxxx
# Node ID 5f39234a9ac433edfd4116fc973593b328edfb7e
# Parent  9dc059239e2a203c62ee2e30d113e6bc1cd019f6
g/c vbd active.
Signed-off-by: Christian Limpach <Christian.Limpach@xxxxxxxxxxxx>

diff -r 9dc059239e2a -r 5f39234a9ac4 
linux-2.6-xen-sparse/drivers/xen/blkback/common.h
--- a/linux-2.6-xen-sparse/drivers/xen/blkback/common.h Tue Aug 23 17:51:57 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/blkback/common.h Tue Aug 23 18:09:54 2005
@@ -35,8 +35,6 @@
     unsigned char  type;        /* VDISK_xxx */
     blkif_pdev_t   pdevice;     /* phys device that this vbd maps to */
     struct block_device *bdev;
-
-    int active;
 }; 
 
 typedef struct blkif_st {
@@ -83,11 +81,9 @@
             free_blkif_callback(_b);             \
     } while (0)
 
-/* Creates inactive vbd. */
+/* Create a vbd. */
 int vbd_create(blkif_t *blkif, blkif_vdev_t vdevice, blkif_pdev_t pdevice,
               int readonly);
-int vbd_is_active(struct vbd *vbd);
-void vbd_activate(struct vbd *vbd);
 void vbd_free(struct vbd *vbd);
 
 unsigned long vbd_size(struct vbd *vbd);
diff -r 9dc059239e2a -r 5f39234a9ac4 
linux-2.6-xen-sparse/drivers/xen/blkback/interface.c
--- a/linux-2.6-xen-sparse/drivers/xen/blkback/interface.c      Tue Aug 23 
17:51:57 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/blkback/interface.c      Tue Aug 23 
18:09:54 2005
@@ -116,8 +116,7 @@
     op.u.close.dom = blkif->domid;
     HYPERVISOR_event_channel_op(&op);
 
-    if (vbd_is_active(&blkif->vbd))
-       vbd_free(&blkif->vbd);
+    vbd_free(&blkif->vbd);
 
     if (blkif->evtchn)
         unbind_evtchn_from_irqhandler(blkif->evtchn, blkif);
diff -r 9dc059239e2a -r 5f39234a9ac4 
linux-2.6-xen-sparse/drivers/xen/blkback/vbd.c
--- a/linux-2.6-xen-sparse/drivers/xen/blkback/vbd.c    Tue Aug 23 17:51:57 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/blkback/vbd.c    Tue Aug 23 18:09:54 2005
@@ -32,11 +32,6 @@
        return bdev_hardsect_size(vbd->bdev);
 }
 
-int vbd_is_active(struct vbd *vbd)
-{
-       return vbd->active;
-}
-
 int vbd_create(blkif_t *blkif, blkif_vdev_t handle,
               blkif_pdev_t pdevice, int readonly)
 {
@@ -46,7 +41,6 @@
     vbd->handle   = handle; 
     vbd->readonly = readonly;
     vbd->type     = 0;
-    vbd->active   = 0;
 
     vbd->pdevice  = pdevice;
 
@@ -62,7 +56,7 @@
     if ( (vbd->bdev->bd_disk == NULL) )
     {
         DPRINTK("vbd_creat: device %08x doesn't exist.\n", vbd->pdevice);
-        bdev_put(vbd->bdev);
+       vbd_free(vbd);
         return -ENOENT;
     }
 
@@ -76,19 +70,11 @@
     return 0;
 }
 
-void vbd_activate(struct vbd *vbd)
-{
-    BUG_ON(vbd_is_active(vbd));
-
-    /* Now we're active. */
-    vbd->active = 1;
-}
-
 void vbd_free(struct vbd *vbd)
 {
-    if (vbd_is_active(vbd))
-       vbd->active = 0;
-    bdev_put(vbd->bdev);
+    if (vbd->bdev)
+       bdev_put(vbd->bdev);
+    vbd->bdev = NULL;
 }
 
 int vbd_translate(struct phys_req *req, blkif_t *blkif, int operation)
diff -r 9dc059239e2a -r 5f39234a9ac4 
linux-2.6-xen-sparse/drivers/xen/blkback/xenbus.c
--- a/linux-2.6-xen-sparse/drivers/xen/blkback/xenbus.c Tue Aug 23 17:51:57 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/blkback/xenbus.c Tue Aug 23 18:09:54 2005
@@ -69,7 +69,7 @@
                device_unregister(&be->dev->dev);
                return;
        }
-       if (vbd_is_active(&be->blkif->vbd))
+       if (be->blkif->status == CONNECTED)
                return;
 
        err = xenbus_gather(be->frontpath, "grant-id", "%lu", &sharedmfn,
@@ -82,9 +82,8 @@
        }
 
        /* Domains must use same shared frame for all vbds. */
-       if (be->blkif->status == CONNECTED &&
-           (evtchn != be->blkif->remote_evtchn ||
-            sharedmfn != be->blkif->shmem_frame)) {
+       if (evtchn != be->blkif->remote_evtchn ||
+           sharedmfn != be->blkif->shmem_frame) {
                xenbus_dev_error(be->dev, err,
                                 "Shared frame/evtchn %li/%u not same as"
                                 " old %li/%u",
@@ -125,19 +124,14 @@
                goto abort;
        }
 
-       /* First vbd?  We need to map the shared frame, irq etc. */
-       if (be->blkif->status != CONNECTED) {
-               err = blkif_map(be->blkif, sharedmfn, evtchn);
-               if (err) {
-                       xenbus_dev_error(be->dev, err,
-                                        "mapping shared-frame %lu port %u",
-                                        sharedmfn, evtchn);
-                       goto abort;
-               }
-       }
-
-       /* We're ready, activate. */
-       vbd_activate(&be->blkif->vbd);
+       /* Map the shared frame, irq etc. */
+       err = blkif_map(be->blkif, sharedmfn, evtchn);
+       if (err) {
+               xenbus_dev_error(be->dev, err,
+                                "mapping shared-frame %lu port %u",
+                                sharedmfn, evtchn);
+               goto abort;
+       }
 
        xenbus_transaction_end(0);
        xenbus_dev_ok(be->dev);

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.