Re: [PATCH 7/8] mm: remove the extra ZONE_DEVICE struct page refcount

From: Dan Williams
Date: Tue Feb 08 2022 - 23:11:57 EST


On Sun, Feb 6, 2022 at 10:33 PM Christoph Hellwig <hch@xxxxxx> wrote:
[..]
> @@ -500,28 +482,27 @@ void free_devmap_managed_page(struct page *page)
> */
> page->mapping = NULL;
> page->pgmap->ops->page_free(page);
> +
> + /*
> + * Reset the page count to 1 to prepare for handing out the page again.
> + */
> + set_page_count(page, 1);

Interesting. I had expected that to really fix the refcount problem
that fs/dax.c would need to start taking real page references as pages
were added to a mapping, just like page cache.

This looks ok to me, and passes my tests. So given I'm still working
my way back to fixing the references properly I'm ok for this hack to
replace the more broken hack that is there presently.

Reviewed-by: Dan Williams <dan.j.williams@xxxxxxxxx>