https://git.reactos.org/?p=reactos.git;a=commitdiff;h=53985bf64daed79283b3557495860ee90590c148

commit 53985bf64daed79283b3557495860ee90590c148
Author:     Pierre Schweitzer <[email protected]>
AuthorDate: Mon Aug 20 19:43:43 2018 +0200
Commit:     Pierre Schweitzer <[email protected]>
CommitDate: Mon Aug 20 19:43:43 2018 +0200

    [FASTFAT] Disable delayed close
    
    It brings too many regressions for too little gain.
    
    CORE-14938
    CORE-14917
    CORE-14826
---
 drivers/filesystems/fastfat/cleanup.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/filesystems/fastfat/cleanup.c 
b/drivers/filesystems/fastfat/cleanup.c
index ae354086e7..291cd77a2f 100644
--- a/drivers/filesystems/fastfat/cleanup.c
+++ b/drivers/filesystems/fastfat/cleanup.c
@@ -128,6 +128,8 @@ VfatCleanupFile(
         {
             IoRemoveShareAccess(FileObject, &pFcb->FCBShareAccess);
         }
+/* FIXME: causes FS corruption and breaks selfhosting/testbots and so on */
+#if 0
         /* If that's the last open handle we just closed, try to see whether
          * we can delay close operation
          */
@@ -136,21 +138,16 @@ VfatCleanupFile(
         {
             /* This is only allowed if that's a directory with no open files
              * OR if it's a file with no section opened
-             * FIXME: only allow files for now
              */
-#if 0
             if ((vfatFCBIsDirectory(pFcb) && 
IsListEmpty(&pFcb->ParentListHead)) ||
                 (!vfatFCBIsDirectory(pFcb) && 
FileObject->SectionObjectPointer->DataSectionObject == NULL &&
                  FileObject->SectionObjectPointer->ImageSectionObject == NULL))
-#else
-            if (!vfatFCBIsDirectory(pFcb) && 
FileObject->SectionObjectPointer->DataSectionObject == NULL &&
-                FileObject->SectionObjectPointer->ImageSectionObject == NULL)
-#endif
             {
                 DPRINT("Delaying close of: %wZ\n", &pFcb->PathNameU);
                 SetFlag(pFcb->Flags, FCB_DELAYED_CLOSE);
             }
         }
+#endif
 
         FileObject->Flags |= FO_CLEANUP_COMPLETE;
 #ifdef KDBG

Reply via email to