mirror of
https://github.com/reactos/reactos.git
synced 2024-09-28 13:34:53 +00:00
[NTOS/CC] Fix calls to CcRosEnsureVacbResident
The function returns BOOLEAN, not NTSTATUS! Also wrap it in SEH, because it can throw an exception on failure.
This commit is contained in:
parent
178285c275
commit
b2fcd27aaa
|
@ -139,6 +139,7 @@ CcPerformReadAhead(
|
||||||
ULONG Length;
|
ULONG Length;
|
||||||
PPRIVATE_CACHE_MAP PrivateCacheMap;
|
PPRIVATE_CACHE_MAP PrivateCacheMap;
|
||||||
BOOLEAN Locked;
|
BOOLEAN Locked;
|
||||||
|
BOOLEAN Success;
|
||||||
|
|
||||||
SharedCacheMap = FileObject->SectionObjectPointer->SharedCacheMap;
|
SharedCacheMap = FileObject->SectionObjectPointer->SharedCacheMap;
|
||||||
|
|
||||||
|
@ -206,9 +207,18 @@ CcPerformReadAhead(
|
||||||
goto Clear;
|
goto Clear;
|
||||||
}
|
}
|
||||||
|
|
||||||
Status = CcRosEnsureVacbResident(Vacb, TRUE, FALSE,
|
_SEH2_TRY
|
||||||
CurrentOffset % VACB_MAPPING_GRANULARITY, PartialLength);
|
{
|
||||||
if (!NT_SUCCESS(Status))
|
Success = CcRosEnsureVacbResident(Vacb, TRUE, FALSE,
|
||||||
|
CurrentOffset % VACB_MAPPING_GRANULARITY, PartialLength);
|
||||||
|
}
|
||||||
|
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||||
|
{
|
||||||
|
Success = FALSE;
|
||||||
|
}
|
||||||
|
_SEH2_END
|
||||||
|
|
||||||
|
if (!Success)
|
||||||
{
|
{
|
||||||
CcRosReleaseVacb(SharedCacheMap, Vacb, FALSE, FALSE);
|
CcRosReleaseVacb(SharedCacheMap, Vacb, FALSE, FALSE);
|
||||||
DPRINT1("Failed to read data: %lx!\n", Status);
|
DPRINT1("Failed to read data: %lx!\n", Status);
|
||||||
|
@ -234,8 +244,17 @@ CcPerformReadAhead(
|
||||||
goto Clear;
|
goto Clear;
|
||||||
}
|
}
|
||||||
|
|
||||||
Status = CcRosEnsureVacbResident(Vacb, TRUE, FALSE, 0, PartialLength);
|
_SEH2_TRY
|
||||||
if (!NT_SUCCESS(Status))
|
{
|
||||||
|
Success = CcRosEnsureVacbResident(Vacb, TRUE, FALSE, 0, PartialLength);
|
||||||
|
}
|
||||||
|
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||||
|
{
|
||||||
|
Success = FALSE;
|
||||||
|
}
|
||||||
|
_SEH2_END
|
||||||
|
|
||||||
|
if (!Success)
|
||||||
{
|
{
|
||||||
CcRosReleaseVacb(SharedCacheMap, Vacb, FALSE, FALSE);
|
CcRosReleaseVacb(SharedCacheMap, Vacb, FALSE, FALSE);
|
||||||
DPRINT1("Failed to read data: %lx!\n", Status);
|
DPRINT1("Failed to read data: %lx!\n", Status);
|
||||||
|
|
Loading…
Reference in a new issue