Christoph Hellwig <hch@xxxxxx> writes: > On Thu, Jun 27, 2024 at 10:54:19AM +1000, Alistair Popple wrote: >> When a fs dax page is freed it has to notify filesystems that the page >> has been unpinned/unmapped and is free. Currently this involves >> special code in the page free paths to detect a transition of refcount >> from 2 to 1 and to call some fs dax specific code. >> >> A future change will require this to happen when the page refcount >> drops to zero. In this case we can use the existing >> pgmap->ops->page_free() callback so wire that up for all devices that >> support FS DAX (nvdimm and virtio). > > Given that ->page_ffree is only called from free_zone_device_folio > and right next to a switch on the the type, can't we just do the > wake_up_var there without the somewhat confusing indirect call that > just back in common code without any driver logic? Longer term I'm hoping we can get rid of that switch on type entirely as I don't think the whole get/put_dev_pagemap() thing is very useful. Less indirection is good though so will move the wake_up_var there.