static NTSTATUS VfatFlushFile( PDEVICE_EXTENSION DeviceExt, PVFATFCB Fcb) { IO_STATUS_BLOCK IoStatus; NTSTATUS Status; DPRINT("VfatFlushFile(DeviceExt %p, Fcb %p) for '%wZ'\n", DeviceExt, Fcb, &Fcb->PathNameU); CcFlushCache(&Fcb->SectionObjectPointers, NULL, 0, &IoStatus); if (IoStatus.Status == STATUS_INVALID_PARAMETER) { /* FIXME: Caching was possible not initialized */ IoStatus.Status = STATUS_SUCCESS; } ExAcquireResourceExclusiveLite(&DeviceExt->DirResource, TRUE); if (BooleanFlagOn(Fcb->Flags, FCB_IS_DIRTY)) { Status = VfatUpdateEntry(DeviceExt, Fcb); if (!NT_SUCCESS(Status)) { IoStatus.Status = Status; } } ExReleaseResourceLite(&DeviceExt->DirResource); return IoStatus.Status; }
static NTSTATUS VfatFlushFile( PDEVICE_EXTENSION DeviceExt, PVFATFCB Fcb) { IO_STATUS_BLOCK IoStatus; NTSTATUS Status; DPRINT("VfatFlushFile(DeviceExt %p, Fcb %p) for '%wZ'\n", DeviceExt, Fcb, &Fcb->PathNameU); CcFlushCache(&Fcb->SectionObjectPointers, NULL, 0, &IoStatus); if (IoStatus.Status == STATUS_INVALID_PARAMETER) { /* FIXME: Caching was possible not initialized */ IoStatus.Status = STATUS_SUCCESS; } if (Fcb->Flags & FCB_IS_DIRTY) { Status = VfatUpdateEntry(Fcb); if (!NT_SUCCESS(Status)) { IoStatus.Status = Status; } } return IoStatus.Status; }