diff options
author | Vishal Moola (Oracle) <vishal.moola@gmail.com> | 2022-09-05 23:45:57 +0200 |
---|---|---|
committer | Andrew Morton <akpm@linux-foundation.org> | 2022-10-03 23:02:56 +0200 |
commit | b05f41a1aa56fd646f2aa048ee446b6a2edb80d3 (patch) | |
tree | a60b0501d577a966874ccc0771fec458c7fe31ec /mm/filemap.c | |
parent | hugetlb_encode.h: fix undefined behaviour (34 << 26) (diff) | |
download | linux-b05f41a1aa56fd646f2aa048ee446b6a2edb80d3.tar.xz linux-b05f41a1aa56fd646f2aa048ee446b6a2edb80d3.zip |
filemap: convert filemap_range_has_writeback() to use folios
Removes 3 calls to compound_head().
Link: https://lkml.kernel.org/r/20220905214557.868606-1-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com>
Cc: Matthew Wilcox <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'mm/filemap.c')
-rw-r--r-- | mm/filemap.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/mm/filemap.c b/mm/filemap.c index 68bd70fe71d5..aab125d423b8 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -632,22 +632,23 @@ bool filemap_range_has_writeback(struct address_space *mapping, { XA_STATE(xas, &mapping->i_pages, start_byte >> PAGE_SHIFT); pgoff_t max = end_byte >> PAGE_SHIFT; - struct page *page; + struct folio *folio; if (end_byte < start_byte) return false; rcu_read_lock(); - xas_for_each(&xas, page, max) { - if (xas_retry(&xas, page)) + xas_for_each(&xas, folio, max) { + if (xas_retry(&xas, folio)) continue; - if (xa_is_value(page)) + if (xa_is_value(folio)) continue; - if (PageDirty(page) || PageLocked(page) || PageWriteback(page)) + if (folio_test_dirty(folio) || folio_test_locked(folio) || + folio_test_writeback(folio)) break; } rcu_read_unlock(); - return page != NULL; + return folio != NULL; } EXPORT_SYMBOL_GPL(filemap_range_has_writeback); |