On Thu, Aug 20, 2020 at 09:38:53AM +0800, yukuai (C) wrote: > > > +iomap_set_range_dirty(struct page *page, unsigned int off, > > > + unsigned int len) > > > +{ > > > + if (PageError(page)) > > > + return; > > > + > > > + if (page_has_private(page)) > > > + iomap_iop_set_range_dirty(page, off, len); > > > > > > I vaguely remembered iomap doesn't always set up PagePrivate. > > > > If so, maybe I should move iomap_set_page_dirty() to > ioamp_set_range_dirty(). iomap sets PagePrivate if a iomap_page structure is allocated. Right now that means for all pages on a file system with a block size smaller than the page size, although I hope we reduce that scope a little.