mirror of
https://github.com/reactos/reactos.git
synced 2025-04-22 05:00:27 +00:00
[RDBSS]
- Misc fixes with DPRINTS [RXCE] - In RxFinalizeSrvOpen, always dereference the FCB, it's always referenced on SRV_OPEN creation - Misc fixes with DPRINTS With that revision and r75419, I'm now able to mount a NFS share, browse it, read a file from it, and unmount it. We're OK regarding references counting! CORE-8204 CORE-11327 CORE-13581 svn path=/trunk/; revision=75420
This commit is contained in:
parent
4a4f6e5d9f
commit
51e9c7f51a
2 changed files with 13 additions and 3 deletions
|
@ -5664,6 +5664,11 @@ RxFindOrCreateFcb(
|
|||
/* If FCB was not found or is not covering full path, prepare for more work */
|
||||
if (Fcb == NULL || Fcb->FcbTableEntry.Path.Length != NetRootName->Length)
|
||||
{
|
||||
if (Fcb != NULL)
|
||||
{
|
||||
DPRINT1("FCB was found and it's not covering the whole path: %wZ - %wZ\n", &Fcb->FcbTableEntry.Path, NetRootName);
|
||||
}
|
||||
|
||||
if (!AcquiredExclusive)
|
||||
{
|
||||
RxReleaseFcbTableLock(&NetRoot->FcbTable);
|
||||
|
@ -6354,7 +6359,7 @@ RxFspDispatch(
|
|||
RxContext->LastExecutionThread = PsGetCurrentThread();
|
||||
SetFlag(RxContext->Flags, (RX_CONTEXT_FLAG_IN_FSP | RX_CONTEXT_FLAG_WAIT));
|
||||
|
||||
DPRINT("Dispatch: MN: %d, Ctxt: %p, IRP: %p, THRD: %lx #%lx", RxContext->MinorFunction,
|
||||
DPRINT("Dispatch: MN: %d, Ctxt: %p, IRP: %p, THRD: %lx #%lx\n", RxContext->MinorFunction,
|
||||
RxContext, RxContext->CurrentIrp, RxContext->LastExecutionThread,
|
||||
RxContext->SerialNumber);
|
||||
|
||||
|
|
|
@ -412,6 +412,8 @@ RxAllocateFcbObject(
|
|||
FsRtlSetupAdvancedHeader(Fcb, &NonPagedFcb->AdvancedFcbHeaderMutex);
|
||||
}
|
||||
|
||||
DPRINT("Allocated %p\n", Buffer);
|
||||
|
||||
return Buffer;
|
||||
}
|
||||
|
||||
|
@ -3158,11 +3160,10 @@ RxFinalizeSrvOpen(
|
|||
RemoveEntryList(&ThisSrvOpen->SrvOpenQLinks);
|
||||
}
|
||||
|
||||
/* If enclosed allocation, mark the memory zone free and dereference FCB */
|
||||
/* If enclosed allocation, mark the memory zone free */
|
||||
if (BooleanFlagOn(ThisSrvOpen->Flags, SRVOPEN_FLAG_ENCLOSED_ALLOCATED))
|
||||
{
|
||||
ClearFlag(Fcb->FcbState, FCB_STATE_SRVOPEN_USED);
|
||||
RxDereferenceNetFcb(Fcb);
|
||||
}
|
||||
/* Otherwise, free the memory */
|
||||
else
|
||||
|
@ -3170,6 +3171,8 @@ RxFinalizeSrvOpen(
|
|||
RxFreeFcbObject(ThisSrvOpen);
|
||||
}
|
||||
|
||||
RxDereferenceNetFcb(Fcb);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -4089,6 +4092,8 @@ RxFreeFcbObject(
|
|||
{
|
||||
PAGED_CODE();
|
||||
|
||||
DPRINT("Freeing %p\n", Object);
|
||||
|
||||
/* If that's a FOBX/SRV_OPEN, nothing to do, just free it */
|
||||
if (NodeType(Object) == RDBSS_NTC_FOBX || NodeType(Object) == RDBSS_NTC_SRVOPEN)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue