lkml.org 
[lkml]   [2022]   [Jun]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 04/10] ext4: Convert mpage_map_and_submit_buffers() to use filemap_get_folios()
    Date
    The called functions all use pages, so just convert back to a page.

    Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    ---
    fs/ext4/inode.c | 19 +++++++++----------
    1 file changed, 9 insertions(+), 10 deletions(-)

    diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
    index 32a7f5e024d6..1aaea53e67b5 100644
    --- a/fs/ext4/inode.c
    +++ b/fs/ext4/inode.c
    @@ -2314,8 +2314,8 @@ static int mpage_process_page(struct mpage_da_data *mpd, struct page *page,
    */
    static int mpage_map_and_submit_buffers(struct mpage_da_data *mpd)
    {
    - struct pagevec pvec;
    - int nr_pages, i;
    + struct folio_batch fbatch;
    + unsigned nr, i;
    struct inode *inode = mpd->inode;
    int bpp_bits = PAGE_SHIFT - inode->i_blkbits;
    pgoff_t start, end;
    @@ -2329,14 +2329,13 @@ static int mpage_map_and_submit_buffers(struct mpage_da_data *mpd)
    lblk = start << bpp_bits;
    pblock = mpd->map.m_pblk;

    - pagevec_init(&pvec);
    + folio_batch_init(&fbatch);
    while (start <= end) {
    - nr_pages = pagevec_lookup_range(&pvec, inode->i_mapping,
    - &start, end);
    - if (nr_pages == 0)
    + nr = filemap_get_folios(inode->i_mapping, &start, end, &fbatch);
    + if (nr == 0)
    break;
    - for (i = 0; i < nr_pages; i++) {
    - struct page *page = pvec.pages[i];
    + for (i = 0; i < nr; i++) {
    + struct page *page = &fbatch.folios[i]->page;

    err = mpage_process_page(mpd, page, &lblk, &pblock,
    &map_bh);
    @@ -2352,14 +2351,14 @@ static int mpage_map_and_submit_buffers(struct mpage_da_data *mpd)
    if (err < 0)
    goto out;
    }
    - pagevec_release(&pvec);
    + folio_batch_release(&fbatch);
    }
    /* Extent fully mapped and matches with page boundary. We are done. */
    mpd->map.m_len = 0;
    mpd->map.m_flags = 0;
    return 0;
    out:
    - pagevec_release(&pvec);
    + folio_batch_release(&fbatch);
    return err;
    }

    --
    2.35.1
    \
     
     \ /
      Last update: 2022-06-05 21:40    [W:2.317 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site