swap_ra_info() may leave ra_info untouched in non_swap_entry() case as
page table lock is not held.  In this case, we have ra_info.nr_pte == 0
and it is meaningless to continue with swap cache readahead.  Skip such
ops by init ra_info.win = 1.
[akpm@linux-foundation.org: clean up struct init]
Link: https://lkml.kernel.org/r/20201009133059.58407-1-linmiaohe@huawei.com
Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
Cc: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
        swp_entry_t entry;
        unsigned int i;
        bool page_allocated;
-       struct vma_swap_readahead ra_info = {0,};
+       struct vma_swap_readahead ra_info = {
+               .win = 1,
+       };
 
        swap_ra_info(vmf, &ra_info);
        if (ra_info.win == 1)