__lock_page - get a lock on the page, assuming we need to sleep to get it
"void fastcall __lock_page(struct page * " "page" ");"
pagethe page to lock
Ugly. Running sync_pagefR
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_pagefR
will then return in state TASK_UNINTERRUPTIBLE.