aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/pagemap.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-10-08 12:49:23 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-10-08 12:49:23 -0400
commit25641c0c8d72f3d235c022fd2c19181912c2ae8b (patch)
treec8970effb0f33eb870777031162de5d1bfd0ec08 /include/linux/pagemap.h
parentef0625b70dac9405ac9d9928cf767108041a9e51 (diff)
parent72c23f0819977d37924af92a42a9b7fbfd1c95d8 (diff)
Merge tag 'nfs-for-3.18-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
Pull NFS client updates from Trond Myklebust: "Highlights include: Stable fixes: - fix an NFSv4.1 state renewal regression - fix open/lock state recovery error handling - fix lock recovery when CREATE_SESSION/SETCLIENTID_CONFIRM fails - fix statd when reconnection fails - don't wake tasks during connection abort - don't start reboot recovery if lease check fails - fix duplicate proc entries Features: - pNFS block driver fixes and clean ups from Christoph - More code cleanups from Anna - Improve mmap() writeback performance - Replace use of PF_TRANS with a more generic mechanism for avoiding deadlocks in nfs_release_page" * tag 'nfs-for-3.18-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (66 commits) NFSv4.1: Fix an NFSv4.1 state renewal regression NFSv4: fix open/lock state recovery error handling NFSv4: Fix lock recovery when CREATE_SESSION/SETCLIENTID_CONFIRM fails NFS: Fabricate fscache server index key correctly SUNRPC: Add missing support for RPC_CLNT_CREATE_NO_RETRANS_TIMEOUT NFSv3: Fix missing includes of nfs3_fs.h NFS/SUNRPC: Remove other deadlock-avoidance mechanisms in nfs_release_page() NFS: avoid waiting at all in nfs_release_page when congested. NFS: avoid deadlocks with loop-back mounted NFS filesystems. MM: export page_wakeup functions SCHED: add some "wait..on_bit...timeout()" interfaces. NFS: don't use STABLE writes during writeback. NFSv4: use exponential retry on NFS4ERR_DELAY for async requests. rpc: Add -EPERM processing for xs_udp_send_request() rpc: return sent and err from xs_sendpages() lockd: Try to reconnect if statd has moved SUNRPC: Don't wake tasks during connection abort Fixing lease renewal nfs: fix duplicate proc entries pnfs/blocklayout: Fix a 64-bit division/remainder issue in bl_map_stripe ...
Diffstat (limited to 'include/linux/pagemap.h')
-rw-r--r--include/linux/pagemap.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h
index 5ba1813337df..19191d39c4f3 100644
--- a/include/linux/pagemap.h
+++ b/include/linux/pagemap.h
@@ -496,12 +496,14 @@ 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 */
502extern void wait_on_page_bit(struct page *page, int bit_nr); 502extern void wait_on_page_bit(struct page *page, int bit_nr);
503 503
504extern int wait_on_page_bit_killable(struct page *page, int bit_nr); 504extern int wait_on_page_bit_killable(struct page *page, int bit_nr);
505extern int wait_on_page_bit_killable_timeout(struct page *page,
506 int bit_nr, unsigned long timeout);
505 507
506static inline int wait_on_page_locked_killable(struct page *page) 508static inline int wait_on_page_locked_killable(struct page *page)
507{ 509{
@@ -510,6 +512,12 @@ static inline int wait_on_page_locked_killable(struct page *page)
510 return 0; 512 return 0;
511} 513}
512 514
515extern wait_queue_head_t *page_waitqueue(struct page *page);
516static inline void wake_up_page(struct page *page, int bit)
517{
518 __wake_up_bit(page_waitqueue(page), &page->flags, bit);
519}
520
513/* 521/*
514 * Wait for a page to be unlocked. 522 * Wait for a page to be unlocked.
515 * 523 *