sys: FspFileNodeOpen/FspFileNodeClose: insert FileNode in the ContextByName table

This commit is contained in:
Bill Zissimopoulos 2016-02-07 18:52:11 -08:00
parent 0ec5291c70
commit 38839ddd82

View File

@ -261,6 +261,9 @@ FSP_FILE_NODE *FspFileNodeOpen(FSP_FILE_NODE *FileNode, PFILE_OBJECT FileObject,
*/ */
ASSERT(OpenedFileNode == FileNode); ASSERT(OpenedFileNode == FileNode);
FspFsvolDeviceInsertContextByName(FsvolDeviceObject,
&FileNode->FileName, FileNode, &FileNode->ContextByNameElementStorage, 0);
IoSetShareAccess(GrantedAccess, ShareAccess, FileObject, IoSetShareAccess(GrantedAccess, ShareAccess, FileObject,
&OpenedFileNode->ShareAccess); &OpenedFileNode->ShareAccess);
} }
@ -345,7 +348,11 @@ VOID FspFileNodeClose(FSP_FILE_NODE *FileNode, PFILE_OBJECT FileObject,
IoRemoveShareAccess(FileObject, &FileNode->ShareAccess); IoRemoveShareAccess(FileObject, &FileNode->ShareAccess);
if (0 == --FileNode->OpenCount) if (0 == --FileNode->OpenCount)
{
FspFsvolDeviceDeleteContext(FsvolDeviceObject, FileNode->UserContext, &Deleted); FspFsvolDeviceDeleteContext(FsvolDeviceObject, FileNode->UserContext, &Deleted);
if (Deleted)
FspFsvolDeviceDeleteContextByName(FsvolDeviceObject, &FileNode->FileName, 0);
}
FspFsvolDeviceUnlockContextTable(FsvolDeviceObject); FspFsvolDeviceUnlockContextTable(FsvolDeviceObject);