unlock_page
Prev | More Memory Management Functions | Next

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

Prev | Up | Next
add_to_page_cache | Home | end_page_writeback