On Wed 05-12-18 10:53:57, Jerome Glisse wrote: > On Wed, Dec 05, 2018 at 12:04:16PM +0100, Jan Kara wrote: > > Hi Jerome! > > > > On Mon 03-12-18 15:18:16, jglisse@xxxxxxxxxx wrote: > > > From: Jérôme Glisse <jglisse@xxxxxxxxxx> > > > > > > To avoid having to change many call sites everytime we want to add a > > > parameter use a structure to group all parameters for the mmu_notifier > > > invalidate_range_start/end cakks. No functional changes with this > > > patch. > > > > Two suggestions for the patch below: > > > > > @@ -772,7 +775,8 @@ static void dax_entry_mkclean(struct address_space *mapping, pgoff_t index, > > > * call mmu_notifier_invalidate_range_start() on our behalf > > > * before taking any lock. > > > */ > > > - if (follow_pte_pmd(vma->vm_mm, address, &start, &end, &ptep, &pmdp, &ptl)) > > > + if (follow_pte_pmd(vma->vm_mm, address, &range, > > > + &ptep, &pmdp, &ptl)) > > > continue; > > > > The change of follow_pte_pmd() arguments looks unexpected. Why should that > > care about mmu notifier range? I see it may be convenient but it doesn't look > > like a good API to me. > > Saddly i do not see a way around that one this is because of fs/dax.c > which does the mmu_notifier_invalidate_range_end while follow_pte_pmd > do the mmu_notifier_invalidate_range_start I see so this is really a preexisting problem with follow_pte_pmd() having ugly interface. After some thoughts I think your patch actually slightly improves the situation so OK. Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR