Provided by: linux-doc-2.6.15_2.6.15-23.39_all bug

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).