FAT##FindAndMarkAvailableCluster: Decrement the AvailableClusters count to keep reported free space consistent.

svn path=/trunk/; revision=38163
This commit is contained in:
Jeffrey Morlan 2008-12-18 03:09:45 +00:00
parent 46ef532ab0
commit 36ac6dbed7

View file

@ -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);
}