lkml.org 
[lkml]   [2020]   [Nov]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 02/16] mm/shmem: Use pagevec_lookup in shmem_unlock_mapping
    Date
    The comment shows that the reason for using find_get_entries() is now
    stale; find_get_pages() will not return 0 if it hits a consecutive run
    of swap entries, and I don't believe it has since 2011. pagevec_lookup()
    is a simpler function to use than find_get_pages(), so use it instead.

    Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Reviewed-by: William Kucharski <william.kucharski@oracle.com>
    ---
    mm/shmem.c | 11 +----------
    1 file changed, 1 insertion(+), 10 deletions(-)

    diff --git a/mm/shmem.c b/mm/shmem.c
    index 028f4596fc16..8076c171731c 100644
    --- a/mm/shmem.c
    +++ b/mm/shmem.c
    @@ -842,7 +842,6 @@ unsigned long shmem_swap_usage(struct vm_area_struct *vma)
    void shmem_unlock_mapping(struct address_space *mapping)
    {
    struct pagevec pvec;
    - pgoff_t indices[PAGEVEC_SIZE];
    pgoff_t index = 0;

    pagevec_init(&pvec);
    @@ -850,16 +849,8 @@ void shmem_unlock_mapping(struct address_space *mapping)
    * Minor point, but we might as well stop if someone else SHM_LOCKs it.
    */
    while (!mapping_unevictable(mapping)) {
    - /*
    - * Avoid pagevec_lookup(): find_get_pages() returns 0 as if it
    - * has finished, if it hits a row of PAGEVEC_SIZE swap entries.
    - */
    - pvec.nr = find_get_entries(mapping, index,
    - PAGEVEC_SIZE, pvec.pages, indices);
    - if (!pvec.nr)
    + if (!pagevec_lookup(&pvec, mapping, &index))
    break;
    - index = indices[pvec.nr - 1] + 1;
    - pagevec_remove_exceptionals(&pvec);
    check_move_unevictable_pages(&pvec);
    pagevec_release(&pvec);
    cond_resched();
    --
    2.28.0
    \
     
     \ /
      Last update: 2020-11-12 22:28    [W:2.571 / U:0.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site