Christoph Hellwig wrote:
> swap_readpage always returns 0, and no caller checks the return value.
> 
> Signed-off-by: Christoph Hellwig <h...@lst.de>
> ---
>  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.willi...@intel.com>

Reply via email to