mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 01:55:19 +00:00
[CDFS_NEW] Fix a bug in Microsoft CDFS implementation where the top level IRP
is set before locking is actually attempted for Cc worker thread (lazy write/read ahead). So in case locking fails, the top level IRP is set and never unset, and latter call will hit the assert where it expects the top level IRP to be NULL. Should be reported upstream (tm). CORE-14315
This commit is contained in:
parent
6c9cdd84bb
commit
a5e89014dc
1 changed files with 10 additions and 0 deletions
|
@ -164,10 +164,20 @@ Return Value:
|
|||
{
|
||||
PAGED_CODE();
|
||||
|
||||
#ifdef __REACTOS__
|
||||
if (!ExAcquireResourceSharedLite( Fcb->Resource, Wait )) {
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
|
||||
NT_ASSERT(IoGetTopLevelIrp() == NULL);
|
||||
IoSetTopLevelIrp((PIRP)FSRTL_CACHE_TOP_LEVEL_IRP);
|
||||
|
||||
#ifndef __REACTOS__
|
||||
return ExAcquireResourceSharedLite( Fcb->Resource, Wait );
|
||||
#else
|
||||
return TRUE;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue