From: Pierre Schweitzer Date: Thu, 27 Nov 2014 06:16:21 +0000 (+0000) Subject: [FASTFAT] X-Git-Tag: ReactOS-0.3.17-FOSDEM2015~574 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=267881ff71072070a34eabadec6aa5840d786371 [FASTFAT] Set clean shutdown bit on dismount svn path=/trunk/; revision=65501 --- diff --git a/reactos/drivers/filesystems/fastfat/fsctl.c b/reactos/drivers/filesystems/fastfat/fsctl.c index 6798ea81cd3..aa50d46bd2e 100644 --- a/reactos/drivers/filesystems/fastfat/fsctl.c +++ b/reactos/drivers/filesystems/fastfat/fsctl.c @@ -925,6 +925,8 @@ VfatDismountVolume( PLIST_ENTRY NextEntry; PVFATFCB Fcb; PFILE_OBJECT FileObject; + ULONG eocMark; + NTSTATUS Status; DPRINT("VfatDismountVolume(%p)\n", IrpContext); @@ -950,6 +952,18 @@ VfatDismountVolume( ExAcquireResourceExclusiveLite(&DeviceExt->FatResource, TRUE); + if (DeviceExt->VolumeFcb->Flags & VCB_CLEAR_DIRTY) + { + /* Set clean shutdown bit */ + Status = GetNextCluster(DeviceExt, 1, &eocMark); + if (NT_SUCCESS(Status)) + { + eocMark |= DeviceExt->CleanShutBitMask; + if (NT_SUCCESS(WriteCluster(DeviceExt, 1, eocMark))) + DeviceExt->VolumeFcb->Flags &= ~VCB_IS_DIRTY; + } + } + /* Flush volume & files */ VfatFlushVolume(DeviceExt, (PVFATFCB)FileObject->FsContext);