# 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
|