Author: pschweitzer
Date: Sun Oct 26 20:20:42 2014
New Revision: 65031

URL: http://svn.reactos.org/svn/reactos?rev=65031&view=rev
Log:
[FASTFAT]
Implement vfatGrabFCB() (which was defined but never implemented) for 
increasing the reference count on a FCB.
This will make debugging easier.

Dedicated to Thomas :-).

Modified:
    trunk/reactos/drivers/filesystems/fastfat/create.c
    trunk/reactos/drivers/filesystems/fastfat/fcb.c
    trunk/reactos/drivers/filesystems/fastfat/finfo.c

Modified: trunk/reactos/drivers/filesystems/fastfat/create.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/fastfat/create.c?rev=65031&r1=65030&r2=65031&view=diff
==============================================================================
--- trunk/reactos/drivers/filesystems/fastfat/create.c  [iso-8859-1] (original)
+++ trunk/reactos/drivers/filesystems/fastfat/create.c  [iso-8859-1] Sun Oct 26 
20:20:42 2014
@@ -365,7 +365,7 @@
         DPRINT("'%wZ'\n", &FileObject->RelatedFileObject->FileName);
 
         *ParentFcb = FileObject->RelatedFileObject->FsContext;
-        (*ParentFcb)->RefCount++;
+        vfatGrabFCB(DeviceExt, *ParentFcb);
     }
     else
     {
@@ -391,7 +391,7 @@
 
     if (*ParentFcb)
     {
-        (*ParentFcb)->RefCount++;
+        vfatGrabFCB(DeviceExt, *ParentFcb);
     }
 
     /*  try first to find an existing FCB in memory  */
@@ -497,7 +497,7 @@
 
         pFcb = DeviceExt->VolumeFcb;
         vfatAttachFCBToFileObject(DeviceExt, pFcb, FileObject);
-        pFcb->RefCount++;
+        vfatGrabFCB(DeviceExt, pFcb);
 
         Irp->IoStatus.Information = FILE_OPENED;
         return STATUS_SUCCESS;
@@ -562,7 +562,7 @@
 
         if (Status == STATUS_SUCCESS)
         {
-            ParentFcb->RefCount++;
+            vfatGrabFCB(DeviceExt, ParentFcb);
             vfatReleaseFCB(DeviceExt, TargetFcb);
             Irp->IoStatus.Information = FILE_EXISTS;
         }

Modified: trunk/reactos/drivers/filesystems/fastfat/fcb.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/fastfat/fcb.c?rev=65031&r1=65030&r2=65031&view=diff
==============================================================================
--- trunk/reactos/drivers/filesystems/fastfat/fcb.c     [iso-8859-1] (original)
+++ trunk/reactos/drivers/filesystems/fastfat/fcb.c     [iso-8859-1] Sun Oct 26 
20:20:42 2014
@@ -288,6 +288,14 @@
 }
 
 VOID
+vfatGrabFCB(
+    PDEVICE_EXTENSION pVCB,
+    PVFATFCB pFCB)
+{
+    ++pFCB->RefCount;
+}
+
+VOID
 vfatReleaseFCB(
     PDEVICE_EXTENSION pVCB,
     PVFATFCB pFCB)
@@ -338,7 +346,7 @@
     }
     if (pFCB->parentFcb)
     {
-        pFCB->parentFcb->RefCount++;
+        vfatGrabFCB(pVCB, pFCB->parentFcb);
     }
 }
 
@@ -402,12 +410,6 @@
      * We also derefence in case we're just renaming since AddFCBToTable 
references it
      */
     vfatReleaseFCB(pVCB, OldParent);
-
-    /* In case we were moving accross directories, reset caching on old parent 
*/
-    //if (OldParent != ParentFcb)
-    //{
-    //    CcUninitializeCacheMap(OldParent->FileObject, NULL, NULL);
-    //}
 
     return STATUS_SUCCESS;
 }
@@ -455,7 +457,7 @@
                 DPRINT("'%wZ' '%wZ'\n", &FileNameU, FcbNameU);
                 if (RtlEqualUnicodeString(&FileNameU, FcbNameU, TRUE))
                 {
-                    rcFCB->RefCount++;
+                    vfatGrabFCB(pVCB, rcFCB);
                     return rcFCB;
                 }
             }
@@ -489,7 +491,7 @@
     fileObject->FsContext = fcb;
     fileObject->FsContext2 = newCCB;
     fcb->FileObject = fileObject;
-    fcb->RefCount++;
+    vfatGrabFCB(vcb, fcb);
 
     _SEH2_TRY
     {
@@ -655,7 +657,7 @@
     rcFCB->RFCB.FileSize.QuadPart = Size;
     rcFCB->RFCB.ValidDataLength.QuadPart = Size;
     rcFCB->RFCB.AllocationSize.QuadPart = ROUND_UP(Size, 
vcb->FatInfo.BytesPerCluster);
-    rcFCB->RefCount++;
+    vfatGrabFCB(vcb, rcFCB);
     if (vfatFCBIsDirectory(rcFCB))
     {
         vfatFCBInitializeCacheFromVolume(vcb, rcFCB);
@@ -817,7 +819,7 @@
         {
             *pFCB = FCB;
             *pParentFCB = FCB->parentFcb;
-            (*pParentFCB)->RefCount++;
+            vfatGrabFCB(pVCB, *pParentFCB);
             return STATUS_SUCCESS;
         }
 

Modified: trunk/reactos/drivers/filesystems/fastfat/finfo.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/fastfat/finfo.c?rev=65031&r1=65030&r2=65031&view=diff
==============================================================================
--- trunk/reactos/drivers/filesystems/fastfat/finfo.c   [iso-8859-1] (original)
+++ trunk/reactos/drivers/filesystems/fastfat/finfo.c   [iso-8859-1] Sun Oct 26 
20:20:42 2014
@@ -426,7 +426,7 @@
 
             /* Effectively delete old file to allow renaming */
             VfatDelEntry(DeviceExt, TargetFcb, NULL);
-            (*ParentFCB)->RefCount++;
+            vfatGrabFCB(DeviceExt, *ParentFCB);
             vfatReleaseFCB(DeviceExt, TargetFcb);
             *Deleted = TRUE;
         }
@@ -720,7 +720,7 @@
         {
             /* Try to find target */
             ParentFCB = FCB->parentFcb;
-            ParentFCB->RefCount++;
+            vfatGrabFCB(DeviceObject, ParentFCB);
             Status = vfatPrepareTargetForRename(DeviceObject,
                                                 &ParentFCB,
                                                 &NewFile,


Reply via email to