Author: arty
Date: Wed Aug 27 23:52:04 2008
New Revision: 35720
URL: 
http://svn.reactos.org/svn/reactos?rev=35720&view=rev
Log:
Don't rely on DWIM semantics here, make an actual CC_FILE_SIZES.  Noticed it
and although strictly speaking it works, it's a little underhanded to just
assume that some loose members of one struct can just be treated as another.
Modified:
    branches/arty-newcc/drivers/filesystems/cdfs/fcb.c
    branches/arty-newcc/drivers/filesystems/cdfs/fsctl.c
    branches/arty-newcc/drivers/filesystems/cdfs/rw.c
Modified: branches/arty-newcc/drivers/filesystems/cdfs/fcb.c
URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/filesystems/…
==============================================================================
--- branches/arty-newcc/drivers/filesystems/cdfs/fcb.c [iso-8859-1] (original)
+++ branches/arty-newcc/drivers/filesystems/cdfs/fcb.c [iso-8859-1] Wed Aug 27 23:52:04
2008
@@ -223,6 +223,7 @@
   PFILE_OBJECT FileObject;
   NTSTATUS Status;
   PCCB  newCCB;
+  CC_FILE_SIZES FileSizes;
   FileObject = IoCreateStreamFileObject(NULL, Vcb->StorageDevice);
@@ -240,6 +241,9 @@
   newCCB->PtrFileObject = FileObject;
   Fcb->FileObject = FileObject;
   Fcb->DevExt = Vcb;
+  FileSizes.AllocationSize = Fcb->RFCB.AllocationSize;
+  FileSizes.FileSize = Fcb->RFCB.FileSize;
+  FileSizes.ValidDataLength = Fcb->RFCB.ValidDataLength;
   Status = STATUS_SUCCESS;
   CcInitializeCacheMap(FileObject,
@@ -411,6 +415,7 @@
                           PFILE_OBJECT FileObject)
 {
   PCCB  newCCB;
+  CC_FILE_SIZES FileSizes;
   newCCB = ExAllocatePoolWithTag(NonPagedPool, sizeof(CCB), TAG_CCB);
   if (newCCB == NULL)
@@ -424,11 +429,14 @@
   FileObject->FsContext2 = newCCB;
   newCCB->PtrFileObject = FileObject;
   Fcb->DevExt = Vcb;
+  FileSizes.AllocationSize = Fcb->RFCB.AllocationSize;
+  FileSizes.FileSize = Fcb->RFCB.FileSize;
+  FileSizes.ValidDataLength = Fcb->RFCB.ValidDataLength;
   if (CdfsFCBIsDirectory(Fcb))
     {
   CcInitializeCacheMap(FileObject,
-                       (PCC_FILE_SIZES)(&Fcb->RFCB.AllocationSize),
+                       &FileSizes,
                        FALSE,
                        &(CdfsGlobalData->CacheMgrCallbacks),
                        Fcb);
Modified: branches/arty-newcc/drivers/filesystems/cdfs/fsctl.c
URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/filesystems/…
==============================================================================
--- branches/arty-newcc/drivers/filesystems/cdfs/fsctl.c [iso-8859-1] (original)
+++ branches/arty-newcc/drivers/filesystems/cdfs/fsctl.c [iso-8859-1] Wed Aug 27 23:52:04
2008
@@ -309,6 +309,7 @@
   PVPB Vpb;
   NTSTATUS Status;
   CDINFO CdInfo;
+  CC_FILE_SIZES FileSizes;
   DPRINT("CdfsMountVolume() called\n");
@@ -403,8 +404,12 @@
   Fcb->Entry.ExtentLocationL = 0;
   Fcb->Entry.DataLengthL = (DeviceExt->CdInfo.VolumeSpaceSize +
DeviceExt->CdInfo.VolumeOffset) * BLOCKSIZE;
+  FileSizes.AllocationSize = Fcb->RFCB.AllocationSize;
+  FileSizes.FileSize = Fcb->RFCB.FileSize;
+  FileSizes.ValidDataLength = Fcb->RFCB.ValidDataLength;
+
   CcInitializeCacheMap(DeviceExt->StreamFileObject,
-                       (PCC_FILE_SIZES)(&Fcb->RFCB.AllocationSize),
+                       &FileSizes,
                       TRUE,
                       &(CdfsGlobalData->CacheMgrCallbacks),
                       Fcb);
Modified: branches/arty-newcc/drivers/filesystems/cdfs/rw.c
URL:
http://svn.reactos.org/svn/reactos/branches/arty-newcc/drivers/filesystems/…
==============================================================================
--- branches/arty-newcc/drivers/filesystems/cdfs/rw.c [iso-8859-1] (original)
+++ branches/arty-newcc/drivers/filesystems/cdfs/rw.c [iso-8859-1] Wed Aug 27 23:52:04
2008
@@ -76,14 +76,19 @@
     {
       LARGE_INTEGER FileOffset;
       IO_STATUS_BLOCK IoStatus;
+      CC_FILE_SIZES FileSizes;
       if (ReadOffset + Length > Fcb->Entry.DataLengthL)
          Length = Fcb->Entry.DataLengthL - ReadOffset;
       if (FileObject->PrivateCacheMap == NULL)
        {
+         FileSizes.AllocationSize = Fcb->RFCB.AllocationSize;
+         FileSizes.FileSize = Fcb->RFCB.FileSize;
+         FileSizes.ValidDataLength = Fcb->RFCB.ValidDataLength;
+
           CcInitializeCacheMap(FileObject,
-                               (PCC_FILE_SIZES)(&Fcb->RFCB.AllocationSize),
+                               &FileSizes,
                               FALSE,
                               &(CdfsGlobalData->CacheMgrCallbacks),
                               Fcb);