Re: [PATCH v5 13/17] dax: dax_iomap_fault() needs to call iomap_end()

From: Ross Zwisler
Date: Mon Oct 10 2016 - 18:06:03 EST


On Mon, Oct 10, 2016 at 05:50:04PM +0200, Christoph Hellwig wrote:
> On Fri, Oct 07, 2016 at 03:09:00PM -0600, Ross Zwisler wrote:
> > Currently iomap_end() doesn't do anything for DAX page faults for both ext2
> > and XFS. ext2_iomap_end() just checks for a write underrun, and
> > xfs_file_iomap_end() checks to see if it needs to finish a delayed
> > allocation. However, in the future iomap_end() calls might be needed to
> > make sure we have balanced allocations, locks, etc. So, add calls to
> > iomap_end() with appropriate error handling to dax_iomap_fault().
>
> Is there a way to just have a single call to iomap_end at the end of
> the function, after which we just return a previosuly setup return
> value?
>
> e.g.
>
> out:
> if (ops->iomap_end) {
> error = ops->iomap_end(inode, pos, PAGE_SIZE,
> PAGE_SIZE, flags, &iomap);
> }
>
> if (error == -ENOMEM)
> return VM_FAULT_OOM | major;
> if (error < 0 && error != -EBUSY)
> return VM_FAULT_SIGBUS | major;
> return ret;

Sure, will do.