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

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

index 61f6a13..09b5ff2 100644 (file)
@@ -70,7 +70,7 @@ static NTSTATUS STDCALL AoeBusDevCtlDetach_(IN PIRP irp) {
     PIO_STACK_LOCATION io_stack_loc = IoGetCurrentIrpStackLocation(irp);
     UINT32 unit_num;
     WVL_SP_BUS_NODE walker;
-    WV_SP_DEV_T dev = NULL;
+    AOE_SP_DISK aoe_disk = NULL;
 
     unit_num = *((PUINT32) irp->AssociatedIrp.SystemBuffer);
     DBG("Request to detach unit: %d\n", unit_num);
@@ -79,25 +79,25 @@ static NTSTATUS STDCALL AoeBusDevCtlDetach_(IN PIRP irp) {
     /* For each node on the bus... */
     WvlBusLock(&AoeBusMain);
     while (walker = WvlBusGetNextNode(&AoeBusMain, walker)) {
-        dev = WvDevFromDevObj(WvlBusGetNodePdo(walker));
+        aoe_disk = CONTAINING_RECORD(walker, AOE_S_DISK, BusNode[0]);
         /* If the unit number matches... */
         if (WvlBusGetNodeNum(walker) == unit_num) {
             /* If it's not a boot-time device... */
-            if (dev->Boot) {
+            if (aoe_disk->Dev->Boot) {
                 DBG("Cannot detach a boot-time device.\n");
                 /* Signal error. */
-                dev = NULL;
+                aoe_disk = NULL;
                 break;
               }
           }
       }
     WvlBusUnlock(&AoeBusMain);
-    if (!dev) {
+    if (!aoe_disk) {
         DBG("Unit %d not found.\n", unit_num);
         return WvlIrpComplete(irp, 0, STATUS_INVALID_PARAMETER);
       }
     /* Detach the node. */
-    WvlBusRemoveNode(&dev->BusNode);
+    WvlBusRemoveNode(aoe_disk->BusNode);
     DBG("Removed unit %d.\n", unit_num);
     return WvlIrpComplete(irp, 0, STATUS_SUCCESS);
   }
@@ -371,12 +371,12 @@ BOOLEAN STDCALL AoeBusAddDev(
       }
     /* Create the child device, if needed. */
     dev_obj = AoeDisk->Dev->Self;
-    WvlBusInitNode(&AoeDisk->Dev->BusNode, dev_obj);
+    WvlBusInitNode(AoeDisk->BusNode, dev_obj);
     /* Associate the parent bus. */
     AoeDisk->Dev->Parent = AoeBusMain.Fdo;
     dev_obj->Flags &= ~DO_DEVICE_INITIALIZING;
     /* Add the new PDO device to the bus' list of children. */
-    WvlBusAddNode(&AoeBusMain, &AoeDisk->Dev->BusNode);
+    WvlBusAddNode(&AoeBusMain, AoeDisk->BusNode);
 
     DBG("Exit\n");
     return TRUE;
index 88f8a67..b29a234 100644 (file)
@@ -1619,12 +1619,10 @@ NTSTATUS STDCALL AoeBusDevCtlShow(IN PIRP irp) {
         AOE_SP_DISK aoe_disk = CONTAINING_RECORD(
             walker,
             AOE_S_DISK,
-            Dev[0].BusNode
+            BusNode[0]
           );
 
-        disks->Disk[count].Disk = WvlBusGetNodeNum(
-            &aoe_disk->Dev->BusNode
-          );
+        disks->Disk[count].Disk = WvlBusGetNodeNum(aoe_disk->BusNode);
         RtlCopyMemory(
             &disks->Disk[count].ClientMac,
             &aoe_disk->ClientMac,
@@ -1934,5 +1932,5 @@ static UCHAR STDCALL AoeDiskUnitNum_(IN WV_SP_DISK_T disk) {
       );
 
     /* Possible precision loss. */
-    return (UCHAR) WvlBusGetNodeNum(&aoe_disk->Dev->BusNode);
+    return (UCHAR) WvlBusGetNodeNum(aoe_disk->BusNode);
   }
index 5b74c7d..4baba5d 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];
+    WVL_S_BUS_NODE BusNode[1];
     WV_S_DISK_T disk[1];
     KSPIN_LOCK SpinLock;
     UINT32 MTU;