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

[win-pv-devel] [PATCH 1/2] Force a re-enumeration of PDOs after filter destruction



If the underlying PDO has not gone away then we need to create a fresh
filter object.

Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
---
 src/xendisk/fdo.c | 8 ++++++++
 src/xendisk/fdo.h | 5 +++++
 src/xendisk/pdo.c | 3 +++
 3 files changed, 16 insertions(+)

diff --git a/src/xendisk/fdo.c b/src/xendisk/fdo.c
index 09f785f..cfa1ad3 100644
--- a/src/xendisk/fdo.c
+++ b/src/xendisk/fdo.c
@@ -165,6 +165,14 @@ __FdoGetPhysicalDeviceObject(
     return Fdo->PhysicalDeviceObject;
 }
 
+PDEVICE_OBJECT
+FdoGetPhysicalDeviceObject(
+    IN  PXENDISK_FDO    Fdo
+    )
+{
+    return __FdoGetPhysicalDeviceObject(Fdo);
+}
+
 VOID
 FdoAddPhysicalDeviceObject(
     IN  PXENDISK_FDO    Fdo,
diff --git a/src/xendisk/fdo.h b/src/xendisk/fdo.h
index 0b30911..a6fb68b 100644
--- a/src/xendisk/fdo.h
+++ b/src/xendisk/fdo.h
@@ -59,6 +59,11 @@ FdoReleaseMutex(
     IN  PXENDISK_FDO     Fdo
     );
 
+extern PDEVICE_OBJECT
+FdoGetPhysicalDeviceObject(
+    IN  PXENDISK_FDO    Fdo
+    );
+
 extern NTSTATUS
 FdoDispatch(
     IN  PXENDISK_FDO    Fdo,
diff --git a/src/xendisk/pdo.c b/src/xendisk/pdo.c
index dffb294..07f4cfd 100644
--- a/src/xendisk/pdo.c
+++ b/src/xendisk/pdo.c
@@ -1098,6 +1098,9 @@ done:
     PdoDestroy(Pdo);
     FdoReleaseMutex(Fdo);
 
+    IoInvalidateDeviceRelations(FdoGetPhysicalDeviceObject(Fdo),
+                                BusRelations);
+
     return status;
 
 fail1:
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel


 


Rackspace

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