On Sun, Apr 26, 2020 at 10:54:28PM -0700, Christoph Hellwig wrote: > On Mon, Apr 27, 2020 at 08:20:54AM +1000, Dave Chinner wrote: > > > void set_page_extent_mapped(struct page *page) > > > { > > > - if (!PagePrivate(page)) { > > > - SetPagePrivate(page); > > > - get_page(page); > > > - set_page_private(page, EXTENT_PAGE_PRIVATE); > > > - } > > > + if (!PagePrivate(page)) > > > + set_fs_page_private(page, (void *)EXTENT_PAGE_PRIVATE); > > > > Change the definition of EXTENT_PAGE_PRIVATE so the cast is not > > needed? Nothing ever reads EXTENT_PAGE_PRIVATE; it's only there to > > set the private flag for other code to check and release the extent > > mapping reference to the page... > > IIRC there as a patch on the btrfs list to remove EXTENT_PAGE_PRIVATE, > it might be better to not bother changing it. Maybe the btrfs > maintainers remember this better. The patch removing it is part of patchset adding full iomap support to btrfs, (https://lore.kernel.org/linux-btrfs/20190905150650.21089-4-rgoldwyn@xxxxxxx/) but it'll still take some time so I'm OK with using the set_fs_page_private helper and adding the cast to EXTENT_PAGE_PRIVATE definition.