Fix incomplete backport of commit 0f792cf949a0

Signed-off-by: Zefan Li <lizefan@huawei.com>
This commit is contained in:
Zefan Li 2016-10-09 19:06:49 +08:00
parent 6883832be8
commit d64519bf05
1 changed files with 9 additions and 5 deletions

View File

@ -2929,13 +2929,17 @@ out_page_table_lock:
unlock_page(pagecache_page);
put_page(pagecache_page);
}
if (page != pagecache_page)
unlock_page(page);
put_page(page);
out_mutex:
mutex_unlock(&hugetlb_instantiation_mutex);
/*
* Generally it's safe to hold refcount during waiting page lock. But
* here we just wait to defer the next page fault to avoid busy loop and
* the page is not used after unlocked before returning from the current
* page fault. So we are safe from accessing freed page, even if we wait
* here without taking refcount.
*/
if (need_wait_lock)
wait_on_page_locked(page);
return ret;
}