mirror of
https://github.com/reactos/reactos.git
synced 2025-05-29 05:58:13 +00:00
Revert part of r20493. Created bug 1229 to keep track of the issue.
svn path=/trunk/; revision=20499
This commit is contained in:
parent
d600323cad
commit
09a762db1d
2 changed files with 12 additions and 17 deletions
|
@ -16,8 +16,7 @@
|
||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*/
|
*/
|
||||||
/* $Id$
|
/*
|
||||||
*
|
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
* FILE: ntoskrnl/mm/pagefile.c
|
* FILE: ntoskrnl/mm/pagefile.c
|
||||||
* PURPOSE: Paging file functions
|
* PURPOSE: Paging file functions
|
||||||
|
@ -897,22 +896,18 @@ NtCreatePagingFile(IN PUNICODE_STRING FileName,
|
||||||
|
|
||||||
BytesPerAllocationUnit = FsSizeInformation.SectorsPerAllocationUnit *
|
BytesPerAllocationUnit = FsSizeInformation.SectorsPerAllocationUnit *
|
||||||
FsSizeInformation.BytesPerSector;
|
FsSizeInformation.BytesPerSector;
|
||||||
|
/* FIXME: If we have 2048 BytesPerAllocationUnit (FAT16 < 128MB) there is
|
||||||
/* We have to find a value which is a multiple of both PAGE_SIZE and
|
* a problem if the paging file is fragmented. Suppose the first cluster
|
||||||
BytesPerAllocationUnit */
|
* of the paging file is cluster 3042 but cluster 3043 is NOT part of the
|
||||||
SafeInitialSize.u.LowPart = ((SafeInitialSize.u.LowPart + PAGE_SIZE - 1) /
|
* paging file but of another file. We can't write a complete page (4096
|
||||||
PAGE_SIZE) * PAGE_SIZE;
|
* bytes) to the physical location of cluster 3042 then. */
|
||||||
while (0 != (SafeInitialSize.u.LowPart % BytesPerAllocationUnit) &&
|
if (BytesPerAllocationUnit % PAGE_SIZE)
|
||||||
SafeInitialSize.u.LowPart <= SafeMaximumSize.u.LowPart - PAGE_SIZE)
|
|
||||||
{
|
|
||||||
SafeInitialSize.u.LowPart += PAGE_SIZE;
|
|
||||||
}
|
|
||||||
if (0 != (SafeInitialSize.u.LowPart % BytesPerAllocationUnit))
|
|
||||||
{
|
{
|
||||||
|
DPRINT1("BytesPerAllocationUnit %d is not a multiple of PAGE_SIZE %d\n",
|
||||||
|
BytesPerAllocationUnit, PAGE_SIZE);
|
||||||
ZwClose(FileHandle);
|
ZwClose(FileHandle);
|
||||||
return STATUS_ALLOTTED_SPACE_EXCEEDED;
|
return STATUS_UNSUCCESSFUL;
|
||||||
}
|
}
|
||||||
ASSERT(0 == (SafeInitialSize.u.LowPart % PAGE_SIZE));
|
|
||||||
|
|
||||||
Status = ZwSetInformationFile(FileHandle,
|
Status = ZwSetInformationFile(FileHandle,
|
||||||
&IoStatus,
|
&IoStatus,
|
||||||
|
|
|
@ -225,8 +225,8 @@ SmpPagingFilesQueryRoutine(PWSTR ValueName,
|
||||||
0);
|
0);
|
||||||
if (! NT_SUCCESS(Status))
|
if (! NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
PrintString("Creation of paging file %wZ with size %I64d KB failed (status 0x%x\n",
|
PrintString("Creation of paging file %wZ with size %I64d KB failed (status 0x%x)\n",
|
||||||
&FileName, InitialSize.QuadPart / 1024);
|
&FileName, InitialSize.QuadPart / 1024, Status);
|
||||||
}
|
}
|
||||||
|
|
||||||
Cleanup:
|
Cleanup:
|
||||||
|
|
Loading…
Reference in a new issue