> -----Original Message-----
> From: Matthew Wilcox <wi...@infradead.org>
> Sent: Wednesday, April 7, 2021 7:14 PM
> To: Ruan, Shiyang/阮 世阳 <ruansy.f...@fujitsu.com>
> Cc: linux-ker...@vger.kernel.org; linux-...@vger.kernel.org;
> linux-nvd...@lists.01.org; linux-fsde...@vger.kernel.org;
> darrick.w...@oracle.com; dan.j.willi...@intel.com; j...@suse.cz;
> v...@zeniv.linux.org.uk; linux-btrfs@vger.kernel.org; da...@fromorbit.com;
> h...@lst.de; rgold...@suse.de; Ritesh Harjani <rite...@gmail.com>
> Subject: Re: [PATCH 1/3] fsdax: Factor helpers to simplify dax fault code
> 
> On Wed, Apr 07, 2021 at 02:32:05PM +0800, Shiyang Ruan wrote:
> > +static int dax_fault_cow_page(struct vm_fault *vmf, struct iomap *iomap,
> > +           loff_t pos, vm_fault_t *ret)
> > +{
> > +   int error = 0;
> > +   unsigned long vaddr = vmf->address;
> > +   sector_t sector = dax_iomap_sector(iomap, pos);
> > +
> > +   switch (iomap->type) {
> > +   case IOMAP_HOLE:
> > +   case IOMAP_UNWRITTEN:
> > +           clear_user_highpage(vmf->cow_page, vaddr);
> > +           break;
> > +   case IOMAP_MAPPED:
> > +           error = copy_cow_page_dax(iomap->bdev, iomap->dax_dev,
> > +                                           sector, vmf->cow_page, vaddr);
> > +           break;
> > +   default:
> > +           WARN_ON_ONCE(1);
> > +           error = -EIO;
> > +           break;
> > +   }
> > +
> > +   if (error)
> > +           return error;
> > +
> > +   __SetPageUptodate(vmf->cow_page);
> > +   *ret = finish_fault(vmf);
> > +   if (!*ret)
> > +           *ret = VM_FAULT_DONE_COW;
> > +   return 0;
> > +}
> ...
> 
> > +           error = dax_fault_cow_page(vmf, &iomap, pos, &ret);
> >             if (error)
> > +                   ret = dax_fault_return(error);
> >             goto finish_iomap;
> 
> This seems unnecessarily complex.  Why not return the vm_fault_t instead of
> returning the errno and then converting it?

Yes, I'll fix it.


--
Thanks,
Ruan Shiyang.

Reply via email to