[PATCH] xfs: add ->pfn_mkwrite support for DAX
Boaz Harrosh
boaz at plexistor.com
Wed Sep 2 04:23:31 CDT 2015
On 09/02/2015 04:25 AM, Dave Chinner wrote:
> From: Dave Chinner <dchinner at redhat.com>
>
> ->pfn_mkwrite support is needed so that when a page with allocated
> backing store first takes a write fault the timestamps on the
> file are updated. THis fixes a generic/080 failure.
>
> Signed-off-by: Dave Chinner <dchinner at redhat.com>
Reviewed-by: Boaz Harrosh <boaz at plexistor.com>
I made a patch for this yesterday, but yours is better of-course
I feel guilty because I sent the patch for the pfn_mkwrite thing,
at the time xfs-dax was not yet in, but I forgot all about it when
reviewing the xfs-dax. My bad, sorry.
Thanks Dave
Boaz
> ---
> fs/xfs/xfs_file.c | 11 +++++++++++
> fs/xfs/xfs_trace.h | 1 +
> 2 files changed, 12 insertions(+)
>
> diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c
> index de2c237..26535ba 100644
> --- a/fs/xfs/xfs_file.c
> +++ b/fs/xfs/xfs_file.c
> @@ -1546,10 +1546,21 @@ xfs_filemap_fault(
> return ret;
> }
>
> +static int
> +xfs_filemap_pfn_mkwrite(
> + struct vm_area_struct *vma,
> + struct vm_fault *vmf)
> +{
> + trace_xfs_filemap_pfn_mkwrite(XFS_I(file_inode(vma->vm_file)));
> +
> + return dax_pfn_mkwrite(vma, vmf);
> +}
> +
> static const struct vm_operations_struct xfs_file_vm_ops = {
> .fault = xfs_filemap_fault,
> .map_pages = filemap_map_pages,
> .page_mkwrite = xfs_filemap_page_mkwrite,
> + .pfn_mkwrite = xfs_filemap_pfn_mkwrite,
> };
>
> STATIC int
> diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h
> index 8b5432e..63d87f2 100644
> --- a/fs/xfs/xfs_trace.h
> +++ b/fs/xfs/xfs_trace.h
> @@ -688,6 +688,7 @@ DEFINE_INODE_EVENT(xfs_inode_free_eofblocks_invalid);
>
> DEFINE_INODE_EVENT(xfs_filemap_fault);
> DEFINE_INODE_EVENT(xfs_filemap_page_mkwrite);
> +DEFINE_INODE_EVENT(xfs_filemap_pfn_mkwrite);
>
> DECLARE_EVENT_CLASS(xfs_iref_class,
> TP_PROTO(struct xfs_inode *ip, unsigned long caller_ip),
>
More information about the xfs
mailing list