From: "Matthew Wilcox (Oracle)" <willy@infradead.org> To: linux-fsdevel@vger.kernel.org, linux-mm@kvack.org Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>, linux-kernel@vger.kernel.org Subject: [PATCH v2 18/27] mm/filemap: Convert wait_on_page_locked_async to wait_on_folio_locked_async Date: Mon, 18 Jan 2021 17:01:39 +0000 Message-ID: <20210118170148.3126186-19-willy@infradead.org> (raw) In-Reply-To: <20210118170148.3126186-1-willy@infradead.org> This saves a few calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> --- mm/filemap.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/mm/filemap.c b/mm/filemap.c index 648f78577ab7..e997f4424ed9 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -1338,22 +1338,22 @@ int wait_on_page_bit_killable(struct page *page, int bit_nr) } EXPORT_SYMBOL(wait_on_page_bit_killable); -static int __wait_on_page_locked_async(struct page *page, +static int __wait_on_folio_locked_async(struct folio *folio, struct wait_page_queue *wait, bool set) { - struct wait_queue_head *q = page_waitqueue(page); + struct wait_queue_head *q = page_waitqueue(&folio->page); int ret = 0; - wait->page = page; + wait->page = &folio->page; wait->bit_nr = PG_locked; spin_lock_irq(&q->lock); __add_wait_queue_entry_tail(q, &wait->wait); - SetPageWaiters(page); + SetFolioWaiters(folio); if (set) - ret = !trylock_page(page); + ret = !trylock_folio(folio); else - ret = PageLocked(page); + ret = FolioLocked(folio); /* * If we were successful now, we know we're still on the * waitqueue as we're still under the lock. This means it's @@ -1368,12 +1368,12 @@ static int __wait_on_page_locked_async(struct page *page, return ret; } -static int wait_on_page_locked_async(struct page *page, +static int wait_on_folio_locked_async(struct folio *folio, struct wait_page_queue *wait) { - if (!PageLocked(page)) + if (!FolioLocked(folio)) return 0; - return __wait_on_page_locked_async(compound_head(page), wait, false); + return __wait_on_folio_locked_async(folio, wait, false); } /** @@ -1539,7 +1539,7 @@ EXPORT_SYMBOL_GPL(__lock_folio_killable); int __lock_folio_async(struct folio *folio, struct wait_page_queue *wait) { - return __wait_on_page_locked_async(&folio->page, wait, true); + return __wait_on_folio_locked_async(folio, wait, true); } /* @@ -2256,7 +2256,7 @@ generic_file_buffered_read_pagenotuptodate(struct kiocb *iocb, * serialisations and why it's safe. */ if (iocb->ki_flags & IOCB_WAITQ) { - error = wait_on_page_locked_async(page, + error = wait_on_folio_locked_async(page_folio(page), iocb->ki_waitq); } else { error = wait_on_page_locked_killable(page); -- 2.29.2
next prev parent reply index Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-01-18 17:01 [PATCH v2 00/27] Page folios Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 01/27] mm: Introduce struct folio Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 02/27] mm: Add folio_pgdat Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 03/27] mm/vmstat: Add folio stat wrappers Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 04/27] mm/debug: Add VM_BUG_ON_FOLIO and VM_WARN_ON_ONCE_FOLIO Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 05/27] mm: Add put_folio Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 06/27] mm: Add get_folio Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 07/27] mm: Create FolioFlags Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 08/27] mm: Handle per-folio private data Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 09/27] mm: Add folio_index, folio_page and folio_contains Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 10/27] mm/util: Add folio_mapping and folio_file_mapping Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 11/27] mm/memcg: Add folio_memcg, lock_folio_memcg and unlock_folio_memcg Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 12/27] mm/memcg: Add mem_cgroup_folio_lruvec Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 13/27] mm: Add unlock_folio Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 14/27] mm: Add lock_folio Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 15/27] mm: Add lock_folio_killable Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 16/27] mm: Convert lock_page_async to lock_folio_async Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 17/27] mm/filemap: Convert lock_page_for_iocb to lock_folio_for_iocb Matthew Wilcox (Oracle) 2021-01-18 17:01 ` Matthew Wilcox (Oracle) [this message] 2021-01-18 17:01 ` [PATCH v2 19/27] mm/filemap: Convert end_page_writeback to end_folio_writeback Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 20/27] mm: Convert wait_on_page_bit to wait_on_folio_bit Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 21/27] mm: Add wait_for_stable_folio and wait_on_folio_writeback Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 22/27] mm: Add wait_on_folio_locked & wait_on_folio_locked_killable Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 23/27] mm: Convert lock_page_or_retry to lock_folio_or_retry Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 24/27] mm/filemap: Convert wake_up_page_bit to wake_up_folio_bit Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 25/27] mm: Convert test_clear_page_writeback to test_clear_folio_writeback Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 26/27] mm/filemap: Convert page wait queues to be folios Matthew Wilcox (Oracle) 2021-01-18 17:01 ` [PATCH v2 27/27] cachefiles: Switch to wait_page_key Matthew Wilcox (Oracle)
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210118170148.3126186-19-willy@infradead.org \ --to=willy@infradead.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Linux-Fsdevel Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-fsdevel/0 linux-fsdevel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-fsdevel linux-fsdevel/ https://lore.kernel.org/linux-fsdevel \ linux-fsdevel@vger.kernel.org public-inbox-index linux-fsdevel Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-fsdevel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git