__LOCK_PAGE(9) Memory Management in Linux __LOCK_PAGE(9)
NAME
__lock_page - get a lock on the page, assuming we need to sleep to get it
SYNOPSIS
void __lock_page(struct page * page);
ARGUMENTS
page
the page to lock
DESCRIPTION
Ugly. Running sync_page in state TASK_UNINTERRUPTIBLE is scary. If some random driver's requestfn sets TASK_RUNNING, we could busywait.
However chances are that on the second loop, the block layer's plug list is empty, so sync_page will then return in state
TASK_UNINTERRUPTIBLE.
COPYRIGHT
Kernel Hackers Manual 2.6. July 2010 __LOCK_PAGE(9)