mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-23 08:53:01 -05:00
sys: FspFileNodeCleanupComplete, FspFileNodeClose: fix problem with OpenCount handling
This commit is contained in:
parent
4417ebcc92
commit
1c85fb94f0
@ -695,9 +695,11 @@ VOID FspFileNodeCleanupComplete(FSP_FILE_NODE *FileNode, PFILE_OBJECT FileObject
|
|||||||
{
|
{
|
||||||
PTruncateSize = &TruncateSize;
|
PTruncateSize = &TruncateSize;
|
||||||
|
|
||||||
if (0 == --FileNode->OpenCount)
|
FspFsvolDeviceDeleteContextByName(FsvolDeviceObject, &FileNode->FileName,
|
||||||
FspFsvolDeviceDeleteContextByName(FsvolDeviceObject, &FileNode->FileName,
|
&DeletedFromContextTable);
|
||||||
&DeletedFromContextTable);
|
ASSERT(DeletedFromContextTable);
|
||||||
|
|
||||||
|
FileNode->OpenCount = 0;
|
||||||
}
|
}
|
||||||
else if (FileNode->TruncateOnClose && FlagOn(FileObject->Flags, FO_CACHE_SUPPORTED))
|
else if (FileNode->TruncateOnClose && FlagOn(FileObject->Flags, FO_CACHE_SUPPORTED))
|
||||||
{
|
{
|
||||||
@ -735,8 +737,11 @@ VOID FspFileNodeClose(FSP_FILE_NODE *FileNode, PFILE_OBJECT FileObject)
|
|||||||
FspFsvolDeviceLockContextTable(FsvolDeviceObject);
|
FspFsvolDeviceLockContextTable(FsvolDeviceObject);
|
||||||
|
|
||||||
if (0 < FileNode->OpenCount && 0 == --FileNode->OpenCount)
|
if (0 < FileNode->OpenCount && 0 == --FileNode->OpenCount)
|
||||||
|
{
|
||||||
FspFsvolDeviceDeleteContextByName(FsvolDeviceObject, &FileNode->FileName,
|
FspFsvolDeviceDeleteContextByName(FsvolDeviceObject, &FileNode->FileName,
|
||||||
&DeletedFromContextTable);
|
&DeletedFromContextTable);
|
||||||
|
ASSERT(DeletedFromContextTable);
|
||||||
|
}
|
||||||
|
|
||||||
FspFsvolDeviceUnlockContextTable(FsvolDeviceObject);
|
FspFsvolDeviceUnlockContextTable(FsvolDeviceObject);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user