Christoph Hellwig wrote: > swap_readpage always returns 0, and no caller checks the return value. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- > mm/page_io.c | 16 +++++----------- > mm/swap.h | 7 +++---- > 2 files changed, 8 insertions(+), 15 deletions(-) > > diff --git a/mm/page_io.c b/mm/page_io.c > index 3a5f921b932e82..6f7166fdc4b2bb 100644 > --- a/mm/page_io.c > +++ b/mm/page_io.c > @@ -445,11 +445,9 @@ static void swap_readpage_fs(struct page *page, > *plug = sio; > } > > -int swap_readpage(struct page *page, bool synchronous, > - struct swap_iocb **plug) > +void swap_readpage(struct page *page, bool synchronous, struct swap_iocb **plug) > { > struct bio *bio; > - int ret = 0; > struct swap_info_struct *sis = page_swap_info(page); > bool workingset = PageWorkingset(page); > unsigned long pflags; > @@ -481,15 +479,12 @@ int swap_readpage(struct page *page, bool synchronous, > goto out; > } > > - if (sis->flags & SWP_SYNCHRONOUS_IO) { > - ret = bdev_read_page(sis->bdev, swap_page_sector(page), page); > - if (!ret) { > - count_vm_event(PSWPIN); > - goto out; > - } > + if ((sis->flags & SWP_SYNCHRONOUS_IO) && > + !bdev_read_page(sis->bdev, swap_page_sector(page), page)) { > + count_vm_event(PSWPIN); > + goto out; > } > > - ret = 0; > bio = bio_alloc(sis->bdev, 1, REQ_OP_READ, GFP_KERNEL); > bio->bi_iter.bi_sector = swap_page_sector(page); > bio->bi_end_io = end_swap_bio_read; > @@ -521,7 +516,6 @@ int swap_readpage(struct page *page, bool synchronous, > psi_memstall_leave(&pflags); > } > delayacct_swapin_end(); > - return ret; > } > > void __swap_read_unplug(struct swap_iocb *sio) > diff --git a/mm/swap.h b/mm/swap.h > index f78065c8ef524b..f5eb5069d28c2e 100644 > --- a/mm/swap.h > +++ b/mm/swap.h > @@ -8,8 +8,7 @@ > /* linux/mm/page_io.c */ > int sio_pool_init(void); > struct swap_iocb; > -int swap_readpage(struct page *page, bool do_poll, > - struct swap_iocb **plug); > +void swap_readpage(struct page *page, bool do_poll, struct swap_iocb **plug); > void __swap_read_unplug(struct swap_iocb *plug); > static inline void swap_read_unplug(struct swap_iocb *plug) > { > @@ -64,8 +63,8 @@ static inline unsigned int folio_swap_flags(struct folio *folio) > } > #else /* CONFIG_SWAP */ > struct swap_iocb; > -static inline int swap_readpage(struct page *page, bool do_poll, > - struct swap_iocb **plug) > +static inline void swap_readpage(struct page *page, bool do_poll, > + struct swap_iocb **plug) > { > return 0; > } > -- > 2.39.0 > Looks correct, Reviewed-by: Dan Williams <dan.j.williams@xxxxxxxxx>