diff options
Diffstat (limited to 'mm/filemap.c')
| -rw-r--r-- | mm/filemap.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/mm/filemap.c b/mm/filemap.c index 126d3973b3d1..fc11974f2bee 100644 --- a/mm/filemap.c +++ b/mm/filemap.c | |||
| @@ -565,6 +565,24 @@ void wait_on_page_bit(struct page *page, int bit_nr) | |||
| 565 | EXPORT_SYMBOL(wait_on_page_bit); | 565 | EXPORT_SYMBOL(wait_on_page_bit); |
| 566 | 566 | ||
| 567 | /** | 567 | /** |
| 568 | * add_page_wait_queue - Add an arbitrary waiter to a page's wait queue | ||
| 569 | * @page - Page defining the wait queue of interest | ||
| 570 | * @waiter - Waiter to add to the queue | ||
| 571 | * | ||
| 572 | * Add an arbitrary @waiter to the wait queue for the nominated @page. | ||
| 573 | */ | ||
| 574 | void add_page_wait_queue(struct page *page, wait_queue_t *waiter) | ||
| 575 | { | ||
| 576 | wait_queue_head_t *q = page_waitqueue(page); | ||
| 577 | unsigned long flags; | ||
| 578 | |||
| 579 | spin_lock_irqsave(&q->lock, flags); | ||
| 580 | __add_wait_queue(q, waiter); | ||
| 581 | spin_unlock_irqrestore(&q->lock, flags); | ||
| 582 | } | ||
| 583 | EXPORT_SYMBOL_GPL(add_page_wait_queue); | ||
| 584 | |||
| 585 | /** | ||
| 568 | * unlock_page - unlock a locked page | 586 | * unlock_page - unlock a locked page |
| 569 | * @page: the page | 587 | * @page: the page |
| 570 | * | 588 | * |
| @@ -2463,6 +2481,9 @@ EXPORT_SYMBOL(generic_file_aio_write); | |||
| 2463 | * (presumably at page->private). If the release was successful, return `1'. | 2481 | * (presumably at page->private). If the release was successful, return `1'. |
| 2464 | * Otherwise return zero. | 2482 | * Otherwise return zero. |
| 2465 | * | 2483 | * |
| 2484 | * This may also be called if PG_fscache is set on a page, indicating that the | ||
| 2485 | * page is known to the local caching routines. | ||
| 2486 | * | ||
| 2466 | * The @gfp_mask argument specifies whether I/O may be performed to release | 2487 | * The @gfp_mask argument specifies whether I/O may be performed to release |
| 2467 | * this page (__GFP_IO), and whether the call may block (__GFP_WAIT & __GFP_FS). | 2488 | * this page (__GFP_IO), and whether the call may block (__GFP_WAIT & __GFP_FS). |
| 2468 | * | 2489 | * |
