On Thu 10-09-20 16:48:29, Christoph Hellwig wrote: > There is no point in trying to call bdev_read_page if SWP_SYNCHRONOUS_IO > is not set, as the device won't support it. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> Looks good to me. You can add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > mm/page_io.c | 18 ++++++++++-------- > 1 file changed, 10 insertions(+), 8 deletions(-) > > diff --git a/mm/page_io.c b/mm/page_io.c > index e485a6e8a6cddb..b199b87e0aa92b 100644 > --- a/mm/page_io.c > +++ b/mm/page_io.c > @@ -403,15 +403,17 @@ int swap_readpage(struct page *page, bool synchronous) > goto out; > } > > - ret = bdev_read_page(sis->bdev, swap_page_sector(page), page); > - if (!ret) { > - if (trylock_page(page)) { > - swap_slot_free_notify(page); > - unlock_page(page); > - } > + if (sis->flags & SWP_SYNCHRONOUS_IO) { > + ret = bdev_read_page(sis->bdev, swap_page_sector(page), page); > + if (!ret) { > + if (trylock_page(page)) { > + swap_slot_free_notify(page); > + unlock_page(page); > + } > > - count_vm_event(PSWPIN); > - goto out; > + count_vm_event(PSWPIN); > + goto out; > + } > } > > ret = 0; > -- > 2.28.0 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR