Name
__lock_page —
get a lock on the page, assuming we need to sleep to get it
Synopsis
void __lock_page ( | struct page * | page) ; |
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.