On Wed 19-10-16 11:21:52, Ross Zwisler wrote:
> On Wed, Oct 19, 2016 at 09:16:00AM +0200, Jan Kara wrote:
> > > > @@ -2315,26 +2335,17 @@ static int wp_page_shared(struct vm_fault *vmf)
> > > >                         put_page(vmf->page);
> > > >                         return tmp;
> > > >                 }
> > > > -               /*
> > > > -                * Since we dropped the lock we need to revalidate
> > > > -                * the PTE as someone else may have changed it.  If
> > > > -                * they did, we just return, as we can count on the
> > > > -                * MMU to tell us if they didn't also make it writable.
> > > > -                */
> > > > -               vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd,
> > > > -                                               vmf->address, 
> > > > &vmf->ptl);
> > > > -               if (!pte_same(*vmf->pte, vmf->orig_pte)) {
> > > > +               tmp = finish_mkwrite_fault(vmf);
> > > > +               if (unlikely(!tmp || (tmp &
> > > > +                                     (VM_FAULT_ERROR | 
> > > > VM_FAULT_NOPAGE)))) {
> > > 
> > > The 'tmp' return from finish_mkwrite_fault() can only be 0 or 
> > > VM_FAULT_WRITE.
> > > I think this test should just be 
> > > 
> > >           if (unlikely(!tmp)) {
> > 
> > Right, finish_mkwrite_fault() cannot currently throw other errors than
> > "retry needed" which is indicated by tmp == 0. However I'd prefer to keep
> > symmetry with finish_fault() handler which can throw other errors and
> > better be prepared to handle them from finish_mkwrite_fault() as well.
> 
> Fair enough.  You can add:
> 
> Reviewed-by: Ross Zwisler <[email protected]>

Thanks. Actually, your question made me have a harder look at return values
from finish_mkwrite_fault() and I've added one more commit switching the
return values so that finish_mkwrite_fault() returns 0 on success and
VM_FAULT_NOPAGE if PTE changed. That is less confusing and even more
consistent with what finish_fault() returns.

                                                                Honza
-- 
Jan Kara <[email protected]>
SUSE Labs, CR
_______________________________________________
Linux-nvdimm mailing list
[email protected]
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to