From 267881ff71072070a34eabadec6aa5840d786371 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Thu, 27 Nov 2014 06:16:21 +0000 Subject: [PATCH] [FASTFAT] Set clean shutdown bit on dismount svn path=/trunk/; revision=65501 --- reactos/drivers/filesystems/fastfat/fsctl.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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); -- 2.17.1