On Mon, Jun 05, 2023 at 07:01:50AM +0530, Ritesh Harjani (IBM) wrote: > @@ -214,7 +231,7 @@ struct iomap_readpage_ctx { > static int iomap_read_inline_data(const struct iomap_iter *iter, > struct folio *folio) > { > - struct iomap_page *iop; > + struct iomap_page __maybe_unused *iop; Ummm ... definitely unused, right? > const struct iomap *iomap = iomap_iter_srcmap(iter); > size_t size = i_size_read(iter->inode) - iomap->offset; > size_t poff = offset_in_page(iomap->offset); > @@ -240,7 +257,8 @@ static int iomap_read_inline_data(const struct iomap_iter *iter, > memcpy(addr, iomap->inline_data, size); > memset(addr + size, 0, PAGE_SIZE - poff - size); > kunmap_local(addr); > - iomap_set_range_uptodate(folio, iop, offset, PAGE_SIZE - poff); > + iomap_iop_set_range_uptodate(iter->inode, folio, offset, > + PAGE_SIZE - poff); Once you make this change, iop is set in this function, but never used. So you still want to call iomap_page_create() if offset > 0, but you can ignore the return value. And you don't need to call to_iomap_page(). Or did I miss something elsewhere in this patch series?