forked from Bananymous/banan-os
Kernel: Fix race condition in FileBackedRegion creation
This commit is contained in:
parent
692ba43182
commit
60d1c26114
|
@ -27,9 +27,7 @@ namespace Kernel
|
||||||
TRY(region->m_dirty_pages.resize(BAN::Math::div_round_up<size_t>(size, PAGE_SIZE)));
|
TRY(region->m_dirty_pages.resize(BAN::Math::div_round_up<size_t>(size, PAGE_SIZE)));
|
||||||
|
|
||||||
LockGuard _(inode->m_mutex);
|
LockGuard _(inode->m_mutex);
|
||||||
if (inode->m_shared_region.valid())
|
if (!(region->m_shared_data = inode->m_shared_region.lock()))
|
||||||
region->m_shared_data = inode->m_shared_region.lock();
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
auto shared_data = TRY(BAN::RefPtr<SharedFileData>::create());
|
auto shared_data = TRY(BAN::RefPtr<SharedFileData>::create());
|
||||||
TRY(shared_data->pages.resize(BAN::Math::div_round_up<size_t>(inode->size(), PAGE_SIZE)));
|
TRY(shared_data->pages.resize(BAN::Math::div_round_up<size_t>(inode->size(), PAGE_SIZE)));
|
||||||
|
|
Loading…
Reference in New Issue