Message ID | 20230125133436.447864-3-hch@lst.de (mailing list archive) |
---|---|
State | Accepted |
Commit | a8c1408f870ef5308088b02c76082136b2c514ad |
Headers | show |
Series | [1/7] mpage: stop using bdev_{read,write}_page | expand |
On Wed, Jan 25, 2023 at 02:34:31PM +0100, Christoph Hellwig wrote: > -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; > } Need to remove the 'return 0'.
Christoph Hellwig wrote: > swap_readpage always returns 0, and no caller checks the return value. > > Signed-off-by: Christoph Hellwig <hch@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.williams@intel.com>
On Wed, Jan 25, 2023 at 08:58:31AM -0700, Keith Busch wrote: > On Wed, Jan 25, 2023 at 02:34:31PM +0100, Christoph Hellwig wrote: > > -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; > > } > > Need to remove the 'return 0'. Yes.
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; }
swap_readpage always returns 0, and no caller checks the return value. Signed-off-by: Christoph Hellwig <hch@lst.de> --- mm/page_io.c | 16 +++++----------- mm/swap.h | 7 +++---- 2 files changed, 8 insertions(+), 15 deletions(-)