On Tue, Jun 25, 2019 at 01:56:59PM -0500, Goldwyn Rodrigues wrote: > Btrfs uses page->private to identify which extent_buffer it belongs to. > So, if you read, it fills the page->private. Then you try to write to > it, iomap will assume it to be iomap_page pointer. Yes, and that is going to run into problems sooner or later, that is if you want to support sub-page size block sizes in btrfs, which I though is work in progress, or if you ever want to write through iomap. > I don't think we can move extent_buffer out of page->private for btrfs. > Any other ideas? I think you'll have to. That being said I don't see why you'd need data in page->private for pages potentially being read in a setup where blocksize == PAGESIZE anyway.