X-Git-Url: http://git.jankratochvil.net/?p=reactos.git;a=blobdiff_plain;f=drivers%2Ffs%2Fvfat%2Ffinfo.c;fp=drivers%2Ffs%2Fvfat%2Ffinfo.c;h=9fc547fae722de9fc005cf493150d568839f24c6;hp=d8f48ac6543da129783cb15dd7cc12733b81e774;hb=7c0cf90e3b750f1f0dc83b2eec9e5c68a512c30f;hpb=ee8b63255465d8c28be3e7bd11628015708fc1ab diff --git a/drivers/fs/vfat/finfo.c b/drivers/fs/vfat/finfo.c index d8f48ac..9fc547f 100644 --- a/drivers/fs/vfat/finfo.c +++ b/drivers/fs/vfat/finfo.c @@ -110,13 +110,13 @@ VfatSetBasicInformation(PFILE_OBJECT FileObject, &(FCB->entry.UpdateDate), &(FCB->entry.UpdateTime)); - FCB->entry.Attrib = (FCB->entry.Attrib & + FCB->entry.Attrib = (unsigned char)((FCB->entry.Attrib & (FILE_ATTRIBUTE_DIRECTORY | 0x48)) | (BasicInfo->FileAttributes & (FILE_ATTRIBUTE_ARCHIVE | FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN | - FILE_ATTRIBUTE_READONLY)); + FILE_ATTRIBUTE_READONLY))); DPRINT("Setting attributes 0x%02x\n", FCB->entry.Attrib); VfatUpdateEntry(DeviceExt, FileObject); @@ -193,13 +193,13 @@ VfatSetDispositionInformation(PFILE_OBJECT FileObject, } if (DispositionInfo->DoDeleteFile) { - if (MmFlushImageSection (FileObject->SectionObjectPointers, MmFlushForDelete)) + if (MmFlushImageSection (FileObject->SectionObjectPointer, MmFlushForDelete)) { KeAcquireSpinLock (&DeviceExt->FcbListLock, &oldIrql); count = FCB->RefCount; if (FCB->RefCount > 1) { - DPRINT1("%d %x\n", FCB->RefCount, CcGetFileObjectFromSectionPtrs(FileObject->SectionObjectPointers)); + DPRINT1("%d %x\n", FCB->RefCount, CcGetFileObjectFromSectionPtrs(FileObject->SectionObjectPointer)); Status = STATUS_ACCESS_DENIED; } else @@ -393,7 +393,7 @@ VOID UpdateFileSize(PFILE_OBJECT FileObject, PVFATFCB Fcb, ULONG Size, ULONG Clu } else { - Fcb->RFCB.AllocationSize.QuadPart = 0LL; + Fcb->RFCB.AllocationSize.QuadPart = (LONGLONG)0; } if (!vfatFCBIsDirectory(Fcb)) { @@ -402,7 +402,7 @@ VOID UpdateFileSize(PFILE_OBJECT FileObject, PVFATFCB Fcb, ULONG Size, ULONG Clu Fcb->RFCB.FileSize.QuadPart = Size; Fcb->RFCB.ValidDataLength.QuadPart = Size; - if (FileObject->SectionObjectPointers->SharedCacheMap != NULL) + if (FileObject->SectionObjectPointer->SharedCacheMap != NULL) { CcSetFileSizes(FileObject, (PCC_FILE_SIZES)&Fcb->RFCB.AllocationSize); } @@ -416,7 +416,6 @@ VfatSetAllocationSizeInformation(PFILE_OBJECT FileObject, { ULONG OldSize; ULONG Cluster, FirstCluster; - ULONG Offset; NTSTATUS Status; ULONG ClusterSize = DeviceExt->FatInfo.BytesPerCluster; @@ -441,7 +440,7 @@ VfatSetAllocationSizeInformation(PFILE_OBJECT FileObject, { if (FirstCluster == 0) { - Status = NextCluster (DeviceExt, Fcb, FirstCluster, &FirstCluster, TRUE); + Status = NextCluster (DeviceExt, FirstCluster, &FirstCluster, TRUE); if (!NT_SUCCESS(Status)) { DPRINT1("NextCluster failed. Status = %x\n", Status); @@ -451,7 +450,7 @@ VfatSetAllocationSizeInformation(PFILE_OBJECT FileObject, { return STATUS_DISK_FULL; } - Status = OffsetToCluster(DeviceExt, Fcb, FirstCluster, + Status = OffsetToCluster(DeviceExt, FirstCluster, ROUND_DOWN(NewSize - 1, ClusterSize), &NCluster, TRUE); if (NCluster == 0xffffffff || !NT_SUCCESS(Status)) @@ -461,35 +460,35 @@ VfatSetAllocationSizeInformation(PFILE_OBJECT FileObject, Status = STATUS_SUCCESS; while (NT_SUCCESS(Status) && Cluster != 0xffffffff && Cluster > 1) { - Status = NextCluster (DeviceExt, Fcb, FirstCluster, &NCluster, FALSE); + Status = NextCluster (DeviceExt, FirstCluster, &NCluster, FALSE); WriteCluster (DeviceExt, Cluster, 0); Cluster = NCluster; } return STATUS_DISK_FULL; } - Fcb->entry.FirstCluster = (FirstCluster & 0x0000FFFF); - Fcb->entry.FirstClusterHigh = (FirstCluster & 0xFFFF0000) >> 16; + Fcb->entry.FirstCluster = (unsigned short)(FirstCluster & 0x0000FFFF); + Fcb->entry.FirstClusterHigh = (unsigned short)((FirstCluster & 0xFFFF0000) >> 16); } else { - Status = OffsetToCluster(DeviceExt, Fcb, FirstCluster, + Status = OffsetToCluster(DeviceExt, FirstCluster, Fcb->RFCB.AllocationSize.u.LowPart - ClusterSize, &Cluster, FALSE); /* FIXME: Check status */ /* Cluster points now to the last cluster within the chain */ - Status = OffsetToCluster(DeviceExt, Fcb, FirstCluster, + Status = OffsetToCluster(DeviceExt, FirstCluster, ROUND_DOWN(NewSize - 1, ClusterSize), &NCluster, TRUE); if (NCluster == 0xffffffff || !NT_SUCCESS(Status)) { /* disk is full */ NCluster = Cluster; - Status = NextCluster (DeviceExt, Fcb, FirstCluster, &NCluster, FALSE); + Status = NextCluster (DeviceExt, FirstCluster, &NCluster, FALSE); WriteCluster(DeviceExt, Cluster, 0xffffffff); Cluster = NCluster; while (NT_SUCCESS(Status) && Cluster != 0xffffffff && Cluster > 1) { - Status = NextCluster (DeviceExt, Fcb, FirstCluster, &NCluster, FALSE); + Status = NextCluster (DeviceExt, FirstCluster, &NCluster, FALSE); WriteCluster (DeviceExt, Cluster, 0); Cluster = NCluster; } @@ -503,12 +502,12 @@ VfatSetAllocationSizeInformation(PFILE_OBJECT FileObject, UpdateFileSize(FileObject, Fcb, NewSize, ClusterSize); if (NewSize > 0) { - Status = OffsetToCluster(DeviceExt, Fcb, Cluster, + Status = OffsetToCluster(DeviceExt, FirstCluster, ROUND_DOWN(NewSize - 1, ClusterSize), &Cluster, FALSE); NCluster = Cluster; - Status = NextCluster (DeviceExt, Fcb, FirstCluster, &NCluster, FALSE); + Status = NextCluster (DeviceExt, FirstCluster, &NCluster, FALSE); WriteCluster(DeviceExt, Cluster, 0xffffffff); Cluster = NCluster; } @@ -522,7 +521,7 @@ VfatSetAllocationSizeInformation(PFILE_OBJECT FileObject, } while (NT_SUCCESS(Status) && 0xffffffff != Cluster && Cluster > 1) { - Status = NextCluster (DeviceExt, Fcb, FirstCluster, &NCluster, FALSE); + Status = NextCluster (DeviceExt, FirstCluster, &NCluster, FALSE); WriteCluster (DeviceExt, Cluster, 0); Cluster = NCluster; } @@ -560,7 +559,8 @@ NTSTATUS VfatQueryInformation(PVFAT_IRP_CONTEXT IrpContext) if (!(FCB->Flags & FCB_IS_PAGE_FILE)) { - if (!ExAcquireResourceSharedLite(&FCB->MainResource, IrpContext->Flags & IRPCONTEXT_CANWAIT)) + if (!ExAcquireResourceSharedLite(&FCB->MainResource, + (BOOLEAN)(IrpContext->Flags & IRPCONTEXT_CANWAIT))) { return VfatQueueRequest (IrpContext); } @@ -660,16 +660,10 @@ NTSTATUS VfatSetInformation(PVFAT_IRP_CONTEXT IrpContext) DPRINT("FileInformationClass %d\n", FileInformationClass); DPRINT("SystemBuffer %x\n", SystemBuffer); - if (FCB->Flags & FCB_IS_PAGE_FILE) - { - if (!ExAcquireResourceExclusiveLite(&FCB->PagingIoResource, CanWait)) - { - return(VfatQueueRequest (IrpContext)); - } - } - else + if (!(FCB->Flags & FCB_IS_PAGE_FILE)) { - if (!ExAcquireResourceExclusiveLite(&FCB->MainResource, CanWait)) + if (!ExAcquireResourceExclusiveLite(&FCB->MainResource, + (BOOLEAN)CanWait)) { return(VfatQueueRequest (IrpContext)); } @@ -707,11 +701,7 @@ NTSTATUS VfatSetInformation(PVFAT_IRP_CONTEXT IrpContext) RC = STATUS_NOT_SUPPORTED; } - if (FCB->Flags & FCB_IS_PAGE_FILE) - { - ExReleaseResourceLite(&FCB->PagingIoResource); - } - else + if (!(FCB->Flags & FCB_IS_PAGE_FILE)) { ExReleaseResourceLite(&FCB->MainResource); }