mirror of
https://github.com/winfsp/winfsp.git
synced 2025-06-14 15:52:47 -05:00
tst: memfs: Cleanup now properly update metadata on MainFileNode
This commit is contained in:
@ -967,13 +967,19 @@ static VOID Cleanup(FSP_FILE_SYSTEM *FileSystem,
|
||||
{
|
||||
MEMFS *Memfs = (MEMFS *)FileSystem->UserContext;
|
||||
MEMFS_FILE_NODE *FileNode = (MEMFS_FILE_NODE *)FileNode0;
|
||||
#if defined(MEMFS_NAMED_STREAMS)
|
||||
MEMFS_FILE_NODE *MainFileNode = 0 != FileNode->MainFileNode ?
|
||||
FileNode->MainFileNode : FileNode;
|
||||
#else
|
||||
MEMFS_FILE_NODE *MainFileNode = FileNode;
|
||||
#endif
|
||||
|
||||
assert(0 != Flags); /* FSP_FSCTL_VOLUME_PARAMS::PostCleanupWhenModifiedOnly ensures this */
|
||||
|
||||
if (Flags & FspCleanupSetArchiveBit)
|
||||
{
|
||||
if (0 == (FileNode->FileInfo.FileAttributes & FILE_ATTRIBUTE_DIRECTORY))
|
||||
FileNode->FileInfo.FileAttributes |= FILE_ATTRIBUTE_ARCHIVE;
|
||||
if (0 == (MainFileNode->FileInfo.FileAttributes & FILE_ATTRIBUTE_DIRECTORY))
|
||||
MainFileNode->FileInfo.FileAttributes |= FILE_ATTRIBUTE_ARCHIVE;
|
||||
}
|
||||
|
||||
if (Flags & (FspCleanupSetLastAccessTime | FspCleanupSetLastWriteTime | FspCleanupSetChangeTime))
|
||||
@ -981,11 +987,11 @@ static VOID Cleanup(FSP_FILE_SYSTEM *FileSystem,
|
||||
UINT64 SystemTime = MemfsGetSystemTime();
|
||||
|
||||
if (Flags & FspCleanupSetLastAccessTime)
|
||||
FileNode->FileInfo.LastAccessTime = SystemTime;
|
||||
MainFileNode->FileInfo.LastAccessTime = SystemTime;
|
||||
if (Flags & FspCleanupSetLastWriteTime)
|
||||
FileNode->FileInfo.LastWriteTime = SystemTime;
|
||||
MainFileNode->FileInfo.LastWriteTime = SystemTime;
|
||||
if (Flags & FspCleanupSetChangeTime)
|
||||
FileNode->FileInfo.ChangeTime = SystemTime;
|
||||
MainFileNode->FileInfo.ChangeTime = SystemTime;
|
||||
}
|
||||
|
||||
if (Flags & FspCleanupSetAllocationSize)
|
||||
|
Reference in New Issue
Block a user