[FASTFAT] While closing FCBs on dismount, release from tail to head and not the contrary.
authorPierre Schweitzer <pierre@reactos.org>
Sun, 17 Dec 2017 17:21:51 +0000 (18:21 +0100)
committerPierre Schweitzer <pierre@reactos.org>
Sun, 17 Dec 2017 17:24:01 +0000 (18:24 +0100)
It fixes assertion failure in vfatDestroyFCB() where we would have release parent before child.
This is still not perfect, but less bug prone...

With this commits (and ENABLE_SWAPOUT defined), ReactOS seems to unmount FAT volumes quite nice! :-)
(Tried with fsutil volume dismount X:)

drivers/filesystems/fastfat/fsctl.c

index f059410..abd7726 100644 (file)
@@ -1203,7 +1203,7 @@ VfatDismountVolume(
     /* Rebrowse the FCB in order to free them now */
     while (!IsListEmpty(&DeviceExt->FcbListHead))
     {
-        NextEntry = RemoveHeadList(&DeviceExt->FcbListHead);
+        NextEntry = RemoveTailList(&DeviceExt->FcbListHead);
         Fcb = CONTAINING_RECORD(NextEntry, VFATFCB, FcbListEntry);
         vfatDestroyFCB(Fcb);
     }