axeld:
* vfs_read_pages_async() must not be called with locked cache, since it cannot be guaranteed that the operation will be performed asynchronously. (The ISO9660 FS for example does not implement the new IO hooks... yet.) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30476 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
+11
-3
@@ -154,7 +154,9 @@ PrecacheIO::Init()
|
||||
}
|
||||
|
||||
|
||||
//! Cache has to be locked when calling this method.
|
||||
/*! Cache has to be locked when calling this method, but it will be temporarily
|
||||
unlocked during execution.
|
||||
*/
|
||||
status_t
|
||||
PrecacheIO::Start()
|
||||
{
|
||||
@@ -185,8 +187,14 @@ PrecacheIO::Start()
|
||||
return B_NO_MEMORY;
|
||||
}
|
||||
|
||||
return vfs_asynchronous_read_pages(fRef->vnode, NULL, fOffset, fVecs,
|
||||
vecCount, fSize, B_PHYSICAL_IO_REQUEST, this);
|
||||
fCache->Unlock();
|
||||
|
||||
status_t status = vfs_asynchronous_read_pages(fRef->vnode, NULL, fOffset,
|
||||
fVecs, vecCount, fSize, B_PHYSICAL_IO_REQUEST, this);
|
||||
|
||||
fCache->Lock();
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user