lkml.org 
[lkml]   [2022]   [Nov]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 03/23] filemap: Convert __filemap_fdatawait_range() to use filemap_get_folios_tag()
    Date
    Converted function to use folios. This is in preparation for the removal
    of find_get_pages_range_tag(). This change removes 2 calls to
    compound_head().

    Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com>
    Reviewed-by: Matthew Wilcow (Oracle) <willy@infradead.org>
    ---
    mm/filemap.c | 24 +++++++++++++-----------
    1 file changed, 13 insertions(+), 11 deletions(-)

    diff --git a/mm/filemap.c b/mm/filemap.c
    index 9be22672ce1a..cc4be51eae5b 100644
    --- a/mm/filemap.c
    +++ b/mm/filemap.c
    @@ -503,28 +503,30 @@ static void __filemap_fdatawait_range(struct address_space *mapping,
    {
    pgoff_t index = start_byte >> PAGE_SHIFT;
    pgoff_t end = end_byte >> PAGE_SHIFT;
    - struct pagevec pvec;
    - int nr_pages;
    + struct folio_batch fbatch;
    + unsigned nr_folios;

    if (end_byte < start_byte)
    return;

    - pagevec_init(&pvec);
    + folio_batch_init(&fbatch);
    +
    while (index <= end) {
    unsigned i;

    - nr_pages = pagevec_lookup_range_tag(&pvec, mapping, &index,
    - end, PAGECACHE_TAG_WRITEBACK);
    - if (!nr_pages)
    + nr_folios = filemap_get_folios_tag(mapping, &index, end,
    + PAGECACHE_TAG_WRITEBACK, &fbatch);
    +
    + if (!nr_folios)
    break;

    - for (i = 0; i < nr_pages; i++) {
    - struct page *page = pvec.pages[i];
    + for (i = 0; i < nr_folios; i++) {
    + struct folio *folio = fbatch.folios[i];

    - wait_on_page_writeback(page);
    - ClearPageError(page);
    + folio_wait_writeback(folio);
    + folio_clear_error(folio);
    }
    - pagevec_release(&pvec);
    + folio_batch_release(&fbatch);
    cond_resched();
    }
    }
    --
    2.38.1
    \
     
     \ /
      Last update: 2022-11-02 17:12    [W:3.517 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site