[aoe] Use new Pdo member in AOE_S_DISK
authorShao Miller <Shao.Miller@yrdsb.edu.on.ca>
Sun, 9 Jan 2011 22:37:53 +0000 (17:37 -0500)
committerShao Miller <Shao.Miller@yrdsb.edu.on.ca>
Sun, 9 Jan 2011 22:37:53 +0000 (17:37 -0500)
Instead of the Self member of WV_S_DEV_T.

src/aoe/bus.c
src/aoe/driver.c
src/include/aoe.h

index 135f6b1..eb68427 100644 (file)
@@ -361,20 +361,15 @@ NTSTATUS AoeBusCreate(IN PDRIVER_OBJECT driver_obj) {
 BOOLEAN STDCALL AoeBusAddDev(
     IN OUT AOE_SP_DISK AoeDisk
   ) {
-    /* The new node's device object. */
-    PDEVICE_OBJECT dev_obj;
-
     DBG("Entry\n");
     if (!AoeBusMain.Fdo || !AoeDisk) {
         DBG("No bus or no device!\n");
         return FALSE;
       }
-    /* Create the child device, if needed. */
-    dev_obj = AoeDisk->Dev->Self;
-    WvlBusInitNode(AoeDisk->BusNode, dev_obj);
+    WvlBusInitNode(AoeDisk->BusNode, AoeDisk->Pdo);
     /* Associate the parent bus. */
     AoeDisk->Dev->Parent = AoeBusMain.Fdo;
-    dev_obj->Flags &= ~DO_DEVICE_INITIALIZING;
+    AoeDisk->Pdo->Flags &= ~DO_DEVICE_INITIALIZING;
     /* Add the new PDO device to the bus' list of children. */
     WvlBusAddNode(&AoeBusMain, AoeDisk->BusNode);
 
index 12aa29b..98a5333 100644 (file)
@@ -1742,7 +1742,7 @@ static AOE_SP_DISK AoeDiskCreatePdo_(void) {
         FALSE
       );
     KeInitializeSpinLock(&aoe_disk->SpinLock);
-    aoe_disk->Dev->Self = pdo;
+    aoe_disk->Dev->Self = aoe_disk->Pdo = pdo;
 
     /* Some device parameters. */
     pdo->Flags |= DO_DIRECT_IO;         /* FIXME? */
@@ -1921,7 +1921,7 @@ static NTSTATUS AoeIrpPnp_(
     if (aoe_disk->Dev->State == WvDevStateDeleted)
       return WvlIrpComplete(irp, 0, STATUS_NO_SUCH_DEVICE);
     /* Use the disk routine. */
-    return disk_pnp__dispatch(aoe_disk->Dev->Self, irp, aoe_disk->disk);
+    return disk_pnp__dispatch(dev_obj, irp, aoe_disk->disk);
   }
 
 static UCHAR STDCALL AoeDiskUnitNum_(IN WV_SP_DISK_T disk) {
index fb933f3..59bc7ef 100644 (file)
@@ -77,6 +77,7 @@ typedef enum AOE_SEARCH_STATE {
 typedef struct AOE_DISK {
     WV_S_DEV_EXT DevExt[1];
     WV_S_DEV_T Dev[1];
+    PDEVICE_OBJECT Pdo;
     WVL_S_BUS_NODE BusNode[1];
     WV_S_DISK_T disk[1];
     KSPIN_LOCK SpinLock;