tst: memfs: Cleanup: remove all named streams on delete

This commit is contained in:
Bill Zissimopoulos 2016-09-28 16:59:39 -07:00
parent fb9b798d3d
commit b591015b28

View File

@ -518,6 +518,14 @@ NTSTATUS Overwrite(FSP_FILE_SYSTEM *FileSystem,
return STATUS_SUCCESS;
}
static BOOLEAN CleanupEnumFn(MEMFS_FILE_NODE *FileNode, PVOID Context0)
{
MEMFS *Memfs = (MEMFS *)Context0;
MemfsFileNodeMapRemove(Memfs->FileNodeMap, FileNode);
return TRUE;
}
static VOID Cleanup(FSP_FILE_SYSTEM *FileSystem,
FSP_FSCTL_TRANSACT_REQ *Request,
PVOID FileNode0, PWSTR FileName, BOOLEAN Delete)
@ -529,8 +537,11 @@ static VOID Cleanup(FSP_FILE_SYSTEM *FileSystem,
assert(Delete); /* the new FSP_FSCTL_VOLUME_PARAMS::PostCleanupOnDeleteOnly ensures this */
if (Delete && !MemfsFileNodeMapHasChild(Memfs->FileNodeMap, FileNode))
{
MemfsFileNodeMapEnumerateNamedStreams(Memfs->FileNodeMap, FileNode, CleanupEnumFn, Memfs);
MemfsFileNodeMapRemove(Memfs->FileNodeMap, FileNode);
}
}
static VOID Close(FSP_FILE_SYSTEM *FileSystem,
FSP_FSCTL_TRANSACT_REQ *Request,