mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 19:26:32 +00:00
[NTOS:MM] MiDereferenceSession: return as soon as session is destroyed
This leads to some simplifications in the following code.
This commit is contained in:
@@ -364,10 +364,11 @@ MiDereferenceSession(VOID)
|
||||
{
|
||||
/* No more references left, kill the session completely */
|
||||
MiDereferenceSessionFinal();
|
||||
return;
|
||||
}
|
||||
|
||||
/* Check if tis is the session leader or the last process in the session */
|
||||
if ((Process->Vm.Flags.SessionLeader) || (ReferenceCount == 0))
|
||||
/* Check if this is the session leader */
|
||||
if (Process->Vm.Flags.SessionLeader)
|
||||
{
|
||||
/* Get the global session address before we kill the session mapping */
|
||||
SessionGlobal = MmSessionSpace->GlobalVirtualAddress;
|
||||
@@ -377,13 +378,9 @@ MiDereferenceSession(VOID)
|
||||
BYTES_TO_PAGES(MmSessionSize) * sizeof(MMPDE));
|
||||
KeFlushEntireTb(FALSE, FALSE);
|
||||
|
||||
/* Is this the session leader? */
|
||||
if (Process->Vm.Flags.SessionLeader)
|
||||
{
|
||||
/* Clean up the references here. */
|
||||
ASSERT(Process->Session == NULL);
|
||||
MiReleaseProcessReferenceToSessionDataPage(SessionGlobal);
|
||||
}
|
||||
/* Clean up the references here. */
|
||||
ASSERT(Process->Session == NULL);
|
||||
MiReleaseProcessReferenceToSessionDataPage(SessionGlobal);
|
||||
}
|
||||
|
||||
/* Reset the current process' session flag */
|
||||
|
||||
Reference in New Issue
Block a user