mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-22 16:33:02 -05:00
tst: memfs: update parent timestamp on create/delete
This commit is contained in:
parent
ff3436718c
commit
2d85c7bf73
@ -384,6 +384,21 @@ MEMFS_FILE_NODE *MemfsFileNodeMapGetParent(MEMFS_FILE_NODE_MAP *FileNodeMap, PWS
|
||||
return iter->second;
|
||||
}
|
||||
|
||||
static inline
|
||||
VOID MemfsFileNodeMapTouchParent(MEMFS_FILE_NODE_MAP *FileNodeMap, MEMFS_FILE_NODE *FileNode)
|
||||
{
|
||||
NTSTATUS Result;
|
||||
MEMFS_FILE_NODE *Parent;
|
||||
if (L'\\' == FileNode->FileName[0] && L'\0' == FileNode->FileName[1])
|
||||
return;
|
||||
Parent = MemfsFileNodeMapGetParent(FileNodeMap, FileNode->FileName, &Result);
|
||||
if (0 == Parent)
|
||||
return;
|
||||
Parent->FileInfo.LastAccessTime =
|
||||
Parent->FileInfo.LastWriteTime =
|
||||
Parent->FileInfo.ChangeTime = MemfsGetSystemTime();
|
||||
}
|
||||
|
||||
static inline
|
||||
NTSTATUS MemfsFileNodeMapInsert(MEMFS_FILE_NODE_MAP *FileNodeMap, MEMFS_FILE_NODE *FileNode,
|
||||
PBOOLEAN PInserted)
|
||||
@ -393,7 +408,10 @@ NTSTATUS MemfsFileNodeMapInsert(MEMFS_FILE_NODE_MAP *FileNodeMap, MEMFS_FILE_NOD
|
||||
{
|
||||
*PInserted = FileNodeMap->insert(MEMFS_FILE_NODE_MAP::value_type(FileNode->FileName, FileNode)).second;
|
||||
if (*PInserted)
|
||||
{
|
||||
MemfsFileNodeReference(FileNode);
|
||||
MemfsFileNodeMapTouchParent(FileNodeMap, FileNode);
|
||||
}
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
catch (...)
|
||||
@ -406,7 +424,10 @@ static inline
|
||||
VOID MemfsFileNodeMapRemove(MEMFS_FILE_NODE_MAP *FileNodeMap, MEMFS_FILE_NODE *FileNode)
|
||||
{
|
||||
if (FileNodeMap->erase(FileNode->FileName))
|
||||
{
|
||||
MemfsFileNodeMapTouchParent(FileNodeMap, FileNode);
|
||||
MemfsFileNodeDereference(FileNode);
|
||||
}
|
||||
}
|
||||
|
||||
static inline
|
||||
|
Loading…
x
Reference in New Issue
Block a user