From 36ac6dbed740f33e3c43809fcefcab647a384fac Mon Sep 17 00:00:00 2001 From: Jeffrey Morlan Date: Thu, 18 Dec 2008 03:09:45 +0000 Subject: [PATCH] FAT##FindAndMarkAvailableCluster: Decrement the AvailableClusters count to keep reported free space consistent. svn path=/trunk/; revision=38163 --- reactos/drivers/filesystems/fastfat/fat.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/reactos/drivers/filesystems/fastfat/fat.c b/reactos/drivers/filesystems/fastfat/fat.c index c9fb49ea57d..8ff955a4fbd 100644 --- a/reactos/drivers/filesystems/fastfat/fat.c +++ b/reactos/drivers/filesystems/fastfat/fat.c @@ -164,6 +164,8 @@ FAT16FindAndMarkAvailableCluster(PDEVICE_EXTENSION DeviceExt, *Block = 0xffff; CcSetDirtyPinnedData(Context, NULL); CcUnpinData(Context); + if (DeviceExt->AvailableClustersValid) + InterlockedDecrement((PLONG)&DeviceExt->AvailableClusters); return(STATUS_SUCCESS); } @@ -227,6 +229,8 @@ FAT12FindAndMarkAvailableCluster(PDEVICE_EXTENSION DeviceExt, PULONG Cluster) *CBlock = (*CBlock & 0xf) | 0xfff0; CcSetDirtyPinnedData(Context, NULL); CcUnpinData(Context); + if (DeviceExt->AvailableClustersValid) + InterlockedDecrement((PLONG)&DeviceExt->AvailableClusters); return(STATUS_SUCCESS); } } @@ -281,6 +285,8 @@ FAT32FindAndMarkAvailableCluster (PDEVICE_EXTENSION DeviceExt, PULONG Cluster) *Block = 0x0fffffff; CcSetDirtyPinnedData(Context, NULL); CcUnpinData(Context); + if (DeviceExt->AvailableClustersValid) + InterlockedDecrement((PLONG)&DeviceExt->AvailableClusters); return(STATUS_SUCCESS); }