[NTFS]
authorPierre Schweitzer <pierre@reactos.org>
Sun, 19 Oct 2014 20:12:14 +0000 (20:12 +0000)
committerPierre Schweitzer <pierre@reactos.org>
Sun, 19 Oct 2014 20:12:14 +0000 (20:12 +0000)
Bugfixing... Part 9/X:
- Return the appropriate size for file size.
- Round the allocation to cluster size (as requested by the API).

This fixes metadata display when enumerating a directory in CMD.
What you get now: http://www.heisspiter.net/~Pierre/rostests/NTFS_listing_fixed.png

Time to fix all the rest!
D'oh!

svn path=/trunk/; revision=64833

reactos/drivers/filesystems/ntfs/dirctl.c

index fa1daca..a078686 100644 (file)
@@ -183,8 +183,8 @@ NtfsGetDirectoryInformation(PDEVICE_EXTENSION DeviceExt,
     /* Convert file flags */
     NtfsFileFlagsToAttributes(FileName->FileAttributes, &Info->FileAttributes);
 
-    Info->EndOfFile.QuadPart = FileName->DataSize;
-    Info->AllocationSize.QuadPart = FileName->AllocatedSize;
+    Info->EndOfFile.QuadPart = FileName->AllocatedSize;
+    Info->AllocationSize.QuadPart = ROUND_UP(FileName->AllocatedSize, DeviceExt->NtfsInfo.BytesPerCluster);
 
 //  Info->FileIndex=;
 
@@ -224,8 +224,8 @@ NtfsGetFullDirectoryInformation(PDEVICE_EXTENSION DeviceExt,
     /* Convert file flags */
     NtfsFileFlagsToAttributes(FileName->FileAttributes, &Info->FileAttributes);
 
-    Info->EndOfFile.QuadPart = FileName->DataSize;
-    Info->AllocationSize.QuadPart = FileName->AllocatedSize;
+    Info->EndOfFile.QuadPart = FileName->AllocatedSize;
+    Info->AllocationSize.QuadPart = ROUND_UP(FileName->AllocatedSize, DeviceExt->NtfsInfo.BytesPerCluster);
 
 //  Info->FileIndex=;
     Info->EaSize = 0;
@@ -266,8 +266,8 @@ NtfsGetBothDirectoryInformation(PDEVICE_EXTENSION DeviceExt,
     /* Convert file flags */
     NtfsFileFlagsToAttributes(FileName->FileAttributes, &Info->FileAttributes);
 
-    Info->EndOfFile.QuadPart = FileName->DataSize;
-    Info->AllocationSize.QuadPart = FileName->AllocatedSize;
+    Info->EndOfFile.QuadPart = FileName->AllocatedSize;
+    Info->AllocationSize.QuadPart = ROUND_UP(FileName->AllocatedSize, DeviceExt->NtfsInfo.BytesPerCluster);
 
 //  Info->FileIndex=;
     Info->EaSize = 0;