diff --git a/reactos/drivers/filters/mountmgr/database.c b/reactos/drivers/filters/mountmgr/database.c index f6a730c4965..77b9e214623 100644 --- a/reactos/drivers/filters/mountmgr/database.c +++ b/reactos/drivers/filters/mountmgr/database.c @@ -746,10 +746,11 @@ OnlineMountedVolumes(IN PDEVICE_EXTENSION DeviceExtension, return; } + RestartScan = TRUE; + /* Query mount points */ while (TRUE) { - RestartScan = TRUE; SymbolicName.Length = 0; SymbolicName.MaximumLength = sizeof(SymbolicNameBuffer); SymbolicName.Buffer = SymbolicNameBuffer; @@ -771,8 +772,7 @@ OnlineMountedVolumes(IN PDEVICE_EXTENSION DeviceExtension, if (ReparsePointInformation.FileReference == SavedReparsePointInformation.FileReference && ReparsePointInformation.Tag == SavedReparsePointInformation.Tag) { - ZwClose(Handle); - return; + break; } } else @@ -782,8 +782,7 @@ OnlineMountedVolumes(IN PDEVICE_EXTENSION DeviceExtension, if (!NT_SUCCESS(Status) || ReparsePointInformation.Tag != IO_REPARSE_TAG_MOUNT_POINT) { - ZwClose(Handle); - return; + break; } /* Get the volume name associated to the mount point */ @@ -813,6 +812,8 @@ OnlineMountedVolumes(IN PDEVICE_EXTENSION DeviceExtension, PostOnlineNotification(DeviceExtension, &VolumeDeviceInformation->SymbolicName); } } + + ZwClose(Handle); } /* diff --git a/reactos/drivers/filters/mountmgr/notify.c b/reactos/drivers/filters/mountmgr/notify.c index 60f9f78e4c3..de1e573b868 100644 --- a/reactos/drivers/filters/mountmgr/notify.c +++ b/reactos/drivers/filters/mountmgr/notify.c @@ -414,6 +414,7 @@ MountMgrNotifyNameChange(IN PDEVICE_EXTENSION DeviceExtension, { ObDereferenceObject(DeviceObject); ObDereferenceObject(FileObject); + return; } Stack = IoGetNextIrpStackLocation(Irp);