diff options
-rw-r--r-- | include/linux/pagemap.h | 10 | ||||
-rw-r--r-- | mm/filemap.c | 8 |
2 files changed, 10 insertions, 8 deletions
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 87f9e4230d3a..2dca0cef3506 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h | |||
@@ -496,8 +496,8 @@ static inline int lock_page_or_retry(struct page *page, struct mm_struct *mm, | |||
496 | } | 496 | } |
497 | 497 | ||
498 | /* | 498 | /* |
499 | * This is exported only for wait_on_page_locked/wait_on_page_writeback. | 499 | * This is exported only for wait_on_page_locked/wait_on_page_writeback, |
500 | * Never use this directly! | 500 | * and for filesystems which need to wait on PG_private. |
501 | */ | 501 | */ |
502 | extern void wait_on_page_bit(struct page *page, int bit_nr); | 502 | extern void wait_on_page_bit(struct page *page, int bit_nr); |
503 | 503 | ||
@@ -512,6 +512,12 @@ static inline int wait_on_page_locked_killable(struct page *page) | |||
512 | return 0; | 512 | return 0; |
513 | } | 513 | } |
514 | 514 | ||
515 | extern wait_queue_head_t *page_waitqueue(struct page *page); | ||
516 | static inline void wake_up_page(struct page *page, int bit) | ||
517 | { | ||
518 | __wake_up_bit(page_waitqueue(page), &page->flags, bit); | ||
519 | } | ||
520 | |||
515 | /* | 521 | /* |
516 | * Wait for a page to be unlocked. | 522 | * Wait for a page to be unlocked. |
517 | * | 523 | * |
diff --git a/mm/filemap.c b/mm/filemap.c index cbe5a9013f70..b9b1413080be 100644 --- a/mm/filemap.c +++ b/mm/filemap.c | |||
@@ -670,17 +670,13 @@ EXPORT_SYMBOL(__page_cache_alloc); | |||
670 | * at a cost of "thundering herd" phenomena during rare hash | 670 | * at a cost of "thundering herd" phenomena during rare hash |
671 | * collisions. | 671 | * collisions. |
672 | */ | 672 | */ |
673 | static wait_queue_head_t *page_waitqueue(struct page *page) | 673 | wait_queue_head_t *page_waitqueue(struct page *page) |
674 | { | 674 | { |
675 | const struct zone *zone = page_zone(page); | 675 | const struct zone *zone = page_zone(page); |
676 | 676 | ||
677 | return &zone->wait_table[hash_ptr(page, zone->wait_table_bits)]; | 677 | return &zone->wait_table[hash_ptr(page, zone->wait_table_bits)]; |
678 | } | 678 | } |
679 | 679 | EXPORT_SYMBOL(page_waitqueue); | |
680 | static inline void wake_up_page(struct page *page, int bit) | ||
681 | { | ||
682 | __wake_up_bit(page_waitqueue(page), &page->flags, bit); | ||
683 | } | ||
684 | 680 | ||
685 | void wait_on_page_bit(struct page *page, int bit_nr) | 681 | void wait_on_page_bit(struct page *page, int bit_nr) |
686 | { | 682 | { |