- Fix the hack in the previous commit which broke FS support.

svn path=/trunk/; revision=22759
This commit is contained in:
Alex Ionescu
2006-07-02 04:33:45 +00:00
parent 8da2913330
commit e3ec87ef6d
+7 -2
View File
@@ -327,12 +327,12 @@ IopMountVolume(IN PDEVICE_OBJECT DeviceObject,
PLIST_ENTRY FsList, ListEntry;
PDEVICE_OBJECT DevObject;
PDEVICE_OBJECT FileSystemDeviceObject;
LIST_ENTRY LocalList;
ASSERT_IRQL(PASSIVE_LEVEL);
KeEnterCriticalRegion();
ExAcquireResourceSharedLite(&FileSystemListLock,TRUE);
restart:
/* For a mount operation, this can only be a Disk, CD-ROM or tape */
if ((DeviceObject->DeviceType == FILE_DEVICE_DISK) ||
(DeviceObject->DeviceType == FILE_DEVICE_VIRTUAL_DISK))
@@ -378,7 +378,10 @@ IopMountVolume(IN PDEVICE_OBJECT DeviceObject,
ExReleaseResourceLite(&FileSystemListLock);
IopLoadFileSystem(DevObject);
ExAcquireResourceSharedLite(&FileSystemListLock,TRUE);
goto restart;
/* We need to setup a local list to pickup where we left */
LocalList.Flink = FsList->Flink;
ListEntry = &LocalList;
break;
case STATUS_SUCCESS:
DeviceObject->Vpb->Flags = DeviceObject->Vpb->Flags |
@@ -392,6 +395,8 @@ IopMountVolume(IN PDEVICE_OBJECT DeviceObject,
/* do nothing */
break;
}
ListEntry = ListEntry->Flink;
}
ExReleaseResourceLite(&FileSystemListLock);