UNLOCK_PAGE

Section: ()
Updated: 06 October 2005
Index Return to Main Contents

 

NAME

unlock_page - unlock a locked page  

SYNOPSIS

"SYNOPSIS"

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


 

Index

NAME
SYNOPSIS
ARGUMENTS
DESCRIPTION
DESCRIPTION

This document was created by man2html, using the manual pages.
Time: 04:41:10 GMT, October 06, 2005