mirror of
https://github.com/winfsp/winfsp.git
synced 2025-07-03 17:32:57 -05:00
sys: FspFileNodeClose: ensure that cleanup also happens when Create fails
This commit is contained in:
@ -1009,7 +1009,7 @@ static NTSTATUS FspFsvolCreateTryOpen(PIRP Irp, const FSP_FSCTL_TRANSACT_RSP *Re
|
||||
if (0 == Request)
|
||||
{
|
||||
FspFsvolCreatePostClose(FileDesc);
|
||||
FspFileNodeClose(FileNode, FileObject);
|
||||
FspFileNodeClose(FileNode, FileObject, TRUE);
|
||||
}
|
||||
|
||||
return DeleteOnClose ? STATUS_CANNOT_DELETE : STATUS_SHARING_VIOLATION;
|
||||
@ -1115,7 +1115,7 @@ static VOID FspFsvolCreateTryOpenRequestFini(FSP_FSCTL_TRANSACT_REQ *Request, PV
|
||||
ASSERT(0 != FileObject);
|
||||
|
||||
FspFsvolCreatePostClose(FileDesc);
|
||||
FspFileNodeClose(FileDesc->FileNode, FileObject);
|
||||
FspFileNodeClose(FileDesc->FileNode, FileObject, TRUE);
|
||||
FspFileNodeDereference(FileDesc->FileNode);
|
||||
FspFileDescDelete(FileDesc);
|
||||
}
|
||||
@ -1142,7 +1142,7 @@ static VOID FspFsvolCreateOverwriteRequestFini(FSP_FSCTL_TRANSACT_REQ *Request,
|
||||
else if (RequestProcessing == State)
|
||||
FspFileNodeReleaseOwner(FileDesc->FileNode, Full, Request);
|
||||
|
||||
FspFileNodeClose(FileDesc->FileNode, FileObject);
|
||||
FspFileNodeClose(FileDesc->FileNode, FileObject, TRUE);
|
||||
FspFileNodeDereference(FileDesc->FileNode);
|
||||
FspFileDescDelete(FileDesc);
|
||||
}
|
||||
|
Reference in New Issue
Block a user