> +static void dax_entry_mkclean(struct address_space *mapping, unsigned long pfn, > + unsigned long npfn, pgoff_t start) > { > struct vm_area_struct *vma; > + pgoff_t end = start + npfn - 1; > > i_mmap_lock_read(mapping); > + vma_interval_tree_foreach(vma, &mapping->i_mmap, start, end) { > + pfn_mkclean_range(pfn, npfn, start, vma); > cond_resched(); > } > i_mmap_unlock_read(mapping); Is there any point in even keeping this helper vs just open coding it in the only caller below? Otherwise looks good: Reviewed-by: Christoph Hellwig <hch@xxxxxx>