On Mon, Jun 01, 2020 at 09:47:54PM -0700, Andrew Morton wrote: > From: Guoqing Jiang <guoqing.jiang@xxxxxxxxxxxxxxx> > Subject: iomap: use attach/detach_page_private > > Since the new pair function is introduced, we can call them to clean the > code in iomap. > > Link: http://lkml.kernel.org/r/20200517214718.468-7-guoqing.jiang@xxxxxxxxxxxxxxx > Signed-off-by: Guoqing Jiang <guoqing.jiang@xxxxxxxxxxxxxxx> > Reviewed-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx> > Cc: "Darrick J. Wong" <darrick.wong@xxxxxxxxxx> > Cc: Dave Chinner <david@xxxxxxxxxxxxx> > Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> That looked reasonable enough... Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> --D > --- > > fs/iomap/buffered-io.c | 19 ++++--------------- > 1 file changed, 4 insertions(+), 15 deletions(-) > > --- a/fs/iomap/buffered-io.c~iomap-use-attach-detach_page_private > +++ a/fs/iomap/buffered-io.c > @@ -59,24 +59,19 @@ iomap_page_create(struct inode *inode, s > * migrate_page_move_mapping() assumes that pages with private data have > * their count elevated by 1. > */ > - get_page(page); > - set_page_private(page, (unsigned long)iop); > - SetPagePrivate(page); > + attach_page_private(page, iop); > return iop; > } > > static void > iomap_page_release(struct page *page) > { > - struct iomap_page *iop = to_iomap_page(page); > + struct iomap_page *iop = detach_page_private(page); > > if (!iop) > return; > WARN_ON_ONCE(atomic_read(&iop->read_count)); > WARN_ON_ONCE(atomic_read(&iop->write_count)); > - ClearPagePrivate(page); > - set_page_private(page, 0); > - put_page(page); > kfree(iop); > } > > @@ -526,14 +521,8 @@ iomap_migrate_page(struct address_space > if (ret != MIGRATEPAGE_SUCCESS) > return ret; > > - if (page_has_private(page)) { > - ClearPagePrivate(page); > - get_page(newpage); > - set_page_private(newpage, page_private(page)); > - set_page_private(page, 0); > - put_page(page); > - SetPagePrivate(newpage); > - } > + if (page_has_private(page)) > + attach_page_private(newpage, detach_page_private(page)); > > if (mode != MIGRATE_SYNC_NO_COPY) > migrate_page_copy(newpage, page); > _