mirror of
https://github.com/reactos/reactos.git
synced 2025-06-10 04:14:53 +00:00
[NTFS]
Fix Up AddFixupArray - It needs to accept a PNTFS_RECORD_HEADER for parameter 2, not a PFILE_RECORD_HEADER. svn path=/branches/GSoC_2016/NTFS/; revision=71662
This commit is contained in:
parent
ba33b9faac
commit
4f8133f44b
2 changed files with 6 additions and 9 deletions
|
@ -698,7 +698,7 @@ UpdateFileRecord(PDEVICE_EXTENSION Vcb,
|
||||||
DPRINT("UpdateFileRecord(%p, %I64x, %p)\n", Vcb, index, file);
|
DPRINT("UpdateFileRecord(%p, %I64x, %p)\n", Vcb, index, file);
|
||||||
|
|
||||||
// Add the fixup array to prepare the data for writing to disk
|
// Add the fixup array to prepare the data for writing to disk
|
||||||
AddFixupArray(Vcb, file);
|
AddFixupArray(Vcb, &file->Ntfs);
|
||||||
|
|
||||||
// write the file record to the master file table
|
// write the file record to the master file table
|
||||||
Status = WriteAttribute(Vcb, Vcb->MFTContext, index * Vcb->NtfsInfo.BytesPerFileRecord, (const PUCHAR)file, Vcb->NtfsInfo.BytesPerFileRecord, &BytesWritten);
|
Status = WriteAttribute(Vcb, Vcb->MFTContext, index * Vcb->NtfsInfo.BytesPerFileRecord, (const PUCHAR)file, Vcb->NtfsInfo.BytesPerFileRecord, &BytesWritten);
|
||||||
|
@ -747,27 +747,24 @@ FixupUpdateSequenceArray(PDEVICE_EXTENSION Vcb,
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
AddFixupArray(PDEVICE_EXTENSION Vcb,
|
AddFixupArray(PDEVICE_EXTENSION Vcb,
|
||||||
PFILE_RECORD_HEADER Record)
|
PNTFS_RECORD_HEADER Record)
|
||||||
{
|
{
|
||||||
USHORT *pShortToFixUp;
|
USHORT *pShortToFixUp;
|
||||||
unsigned int ArrayEntryCount = Record->BytesAllocated / Vcb->NtfsInfo.BytesPerSector;
|
unsigned int ArrayEntryCount = Record->UsaCount - 1;
|
||||||
unsigned int Offset = Vcb->NtfsInfo.BytesPerSector - 2;
|
unsigned int Offset = Vcb->NtfsInfo.BytesPerSector - 2;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
PFIXUP_ARRAY fixupArray = (PFIXUP_ARRAY)((UCHAR*)Record + Record->Ntfs.UsaOffset);
|
PFIXUP_ARRAY fixupArray = (PFIXUP_ARRAY)((UCHAR*)Record + Record->UsaOffset);
|
||||||
|
|
||||||
DPRINT("AddFixupArray(%p, %p)\n fixupArray->USN: %u, ArrayEntryCount: %u\n", Vcb, Record, fixupArray->USN, ArrayEntryCount);
|
DPRINT("AddFixupArray(%p, %p)\n fixupArray->USN: %u, ArrayEntryCount: %u\n", Vcb, Record, fixupArray->USN, ArrayEntryCount);
|
||||||
|
|
||||||
if (Record->BytesAllocated % Vcb->NtfsInfo.BytesPerSector != 0)
|
|
||||||
ArrayEntryCount++;
|
|
||||||
|
|
||||||
fixupArray->USN++;
|
fixupArray->USN++;
|
||||||
|
|
||||||
for (i = 0; i < ArrayEntryCount; i++)
|
for (i = 0; i < ArrayEntryCount; i++)
|
||||||
{
|
{
|
||||||
DPRINT("USN: %u\tOffset: %u\n", fixupArray->USN, Offset);
|
DPRINT("USN: %u\tOffset: %u\n", fixupArray->USN, Offset);
|
||||||
|
|
||||||
pShortToFixUp = (USHORT*)((UCHAR*)Record + Offset);
|
pShortToFixUp = (USHORT*)((PCHAR)Record + Offset);
|
||||||
fixupArray->Array[i] = *pShortToFixUp;
|
fixupArray->Array[i] = *pShortToFixUp;
|
||||||
*pShortToFixUp = fixupArray->USN;
|
*pShortToFixUp = fixupArray->USN;
|
||||||
Offset += Vcb->NtfsInfo.BytesPerSector;
|
Offset += Vcb->NtfsInfo.BytesPerSector;
|
||||||
|
|
|
@ -811,7 +811,7 @@ FixupUpdateSequenceArray(PDEVICE_EXTENSION Vcb,
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
AddFixupArray(PDEVICE_EXTENSION Vcb,
|
AddFixupArray(PDEVICE_EXTENSION Vcb,
|
||||||
PFILE_RECORD_HEADER Record);
|
PNTFS_RECORD_HEADER Record);
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
ReadLCN(PDEVICE_EXTENSION Vcb,
|
ReadLCN(PDEVICE_EXTENSION Vcb,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue