Re: [PATCH v3 1/3] fsdax: Factor helpers to simplify dax fault code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Apr 27, 2021 at 02:44:33AM +0000, ruansy.fnst@xxxxxxxxxxx wrote:
> > -----Original Message-----
> > From: Ira Weiny <ira.weiny@xxxxxxxxx>
> > Sent: Tuesday, April 27, 2021 7:38 AM
> > Subject: Re: [PATCH v3 1/3] fsdax: Factor helpers to simplify dax fault code
> > 
> > On Thu, Apr 22, 2021 at 09:44:59PM +0800, Shiyang Ruan wrote:
> > > The dax page fault code is too long and a bit difficult to read. And
> > > it is hard to understand when we trying to add new features. Some of
> > > the PTE/PMD codes have similar logic. So, factor them as helper
> > > functions to simplify the code.
> > >
> > > Signed-off-by: Shiyang Ruan <ruansy.fnst@xxxxxxxxxxx>
> > > Reviewed-by: Christoph Hellwig <hch@xxxxxx>
> > > Reviewed-by: Ritesh Harjani <riteshh@xxxxxxxxxxxxx>
> > > ---
> > >  fs/dax.c | 153
> > > ++++++++++++++++++++++++++++++-------------------------
> > >  1 file changed, 84 insertions(+), 69 deletions(-)
> > >
> > > diff --git a/fs/dax.c b/fs/dax.c
> > > index b3d27fdc6775..f843fb8fbbf1 100644
> > > --- a/fs/dax.c
> > > +++ b/fs/dax.c
> > 
> > [snip]
> > 
> > > @@ -1355,19 +1379,8 @@ static vm_fault_t dax_iomap_pte_fault(struct
> > vm_fault *vmf, pfn_t *pfnp,
> > >  		entry = dax_insert_entry(&xas, mapping, vmf, entry, pfn,
> > >  						 0, write && !sync);
> > >
> > > -		/*
> > > -		 * If we are doing synchronous page fault and inode needs fsync,
> > > -		 * we can insert PTE into page tables only after that happens.
> > > -		 * Skip insertion for now and return the pfn so that caller can
> > > -		 * insert it after fsync is done.
> > > -		 */
> > >  		if (sync) {
> > > -			if (WARN_ON_ONCE(!pfnp)) {
> > > -				error = -EIO;
> > > -				goto error_finish_iomap;
> > > -			}
> > > -			*pfnp = pfn;
> > > -			ret = VM_FAULT_NEEDDSYNC | major;
> > > +			ret = dax_fault_synchronous_pfnp(pfnp, pfn);
> > 
> > I commented on the previous version...  So I'll ask here too.
> > 
> > Why is it ok to drop 'major' here?
> 
> This dax_iomap_pte_fault () finally returns 'ret | major', so I think the major here is not dropped.  The origin code seems OR the return value and major twice.
> 

Thanks I missed that!
Ira




[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux