Provided by:
linux-doc-2.6.15_2.6.15-23.39_all 
NAME
unlock_page - unlock a locked page
SYNOPSIS
void fastcall unlock_page (struct page * page);
ARGUMENTS
page the page
DESCRIPTION
Unlocks the page and wakes up sleepers in ___wait_on_page_locked. Also
wakes sleepers in wait_on_page_writeback because the wakeup mechananism
between PageLocked pages and PageWriteback pages is shared. But that’s
OK - sleepers in wait_on_page_writeback just go back to sleep.
The first mb is necessary to safely close the critical section opened
by the TestSetPageLocked, the second mb is necessary to enforce
ordering between the clear_bit and the read of the waitqueue (to avoid
SMP races with a parallel wait_on_page_locked).
DESCRIPTION
Unlocks the page and wakes up sleepers in ___wait_on_page_locked. Also
wakes sleepers in wait_on_page_writeback because the wakeup mechananism
between PageLocked pages and PageWriteback pages is shared. But that’s
OK - sleepers in wait_on_page_writeback just go back to sleep.
The first mb is necessary to safely close the critical section opened
by the TestSetPageLocked, the second mb is necessary to enforce
ordering between the clear_bit and the read of the waitqueue (to avoid
SMP races with a parallel wait_on_page_locked).