From: Dave Chinner <david@fromorbit.com>
To: Dan Williams <dan.j.williams@intel.com>
Cc: "linux-nvdimm@lists.01.org" <linux-nvdimm@lists.01.org>,
linux-xfs@vger.kernel.org, Jan Kara <jack@suse.cz>,
Arnd Bergmann <arnd@arndb.de>,
"Darrick J. Wong" <darrick.wong@oracle.com>,
linux-rdma@vger.kernel.org, Linux API <linux-api@vger.kernel.org>,
Christoph Hellwig <hch@lst.de>,
"J. Bruce Fields" <bfields@fieldses.org>,
Linux MM <linux-mm@kvack.org>, Jeff Moyer <jmoyer@redhat.com>,
Alexander Viro <viro@zeniv.linux.org.uk>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
Jeff Layton <jlayton@poochiereds.net>,
Ross Zwisler <ross.zwisler@linux.intel.com>
Subject: Re: [PATCH v7 06/12] xfs: wire up MAP_DIRECT
Date: Tue, 10 Oct 2017 09:50:25 +1100 [thread overview]
Message-ID: <20171009225025.GT3666@dastard> (raw)
In-Reply-To: <CAPcyv4i6WBxfVJ0yqWbuW2kiJ-wpi+iYRPk=Kykqt3U5Rrw7MA@mail.gmail.com>
On Mon, Oct 09, 2017 at 10:08:40AM -0700, Dan Williams wrote:
> On Sun, Oct 8, 2017 at 8:40 PM, Dave Chinner <david@fromorbit.com> wrote:
> >>
> >> /*
> >> * Clear the specified ranges to zero through either the pagecache or DAX.
> >> @@ -1008,6 +1018,26 @@ xfs_file_llseek(
> >> return vfs_setpos(file, offset, inode->i_sb->s_maxbytes);
> >> }
> >>
> >> +static int
> >> +xfs_vma_checks(
> >> + struct vm_area_struct *vma,
> >> + struct inode *inode)
> >
> > Exactly what are we checking for - function name doesn't tell me,
> > and there's no comments, either?
>
> Ok, I'll improve this.
>
> >
> >> +{
> >> + if (!is_xfs_map_direct(vma))
> >> + return 0;
> >> +
> >> + if (!is_map_direct_valid(vma->vm_private_data))
> >> + return VM_FAULT_SIGBUS;
> >> +
> >> + if (xfs_is_reflink_inode(XFS_I(inode)))
> >> + return VM_FAULT_SIGBUS;
> >> +
> >> + if (!IS_DAX(inode))
> >> + return VM_FAULT_SIGBUS;
> >
> > And how do we get is_xfs_map_direct() set to true if we don't have a
> > DAX inode or the inode has shared extents?
>
> So, this was my way of trying to satisfy the request you made here:
>
> https://lkml.org/lkml/2017/8/11/876
>
> i.e. allow MAP_DIRECT on non-dax files to enable a use case of
> freezing the block-map to examine which file extents are linked. If
> you don't want to use MAP_DIRECT for this, we can move these checks to
> mmap time.
Ok, but I don't want to use mmap to deal with this, nor do I care
whether DAX is in use or not. So I don't think this is really
necessary for MAP_DIRECT.
> >> +xfs_file_mmap_validate(
> >> + struct file *filp,
> >> + struct vm_area_struct *vma,
> >> + unsigned long map_flags,
> >> + int fd)
> >> +{
> >> + struct inode *inode = file_inode(filp);
> >> + struct xfs_inode *ip = XFS_I(inode);
> >> + struct map_direct_state *mds;
> >> +
> >> + if (map_flags & ~(XFS_MAP_SUPPORTED))
> >> + return -EOPNOTSUPP;
> >> +
> >> + if ((map_flags & MAP_DIRECT) == 0)
> >> + return xfs_file_mmap(filp, vma);
> >> +
> >> + file_accessed(filp);
> >> + vma->vm_ops = &xfs_file_vm_direct_ops;
> >> + if (IS_DAX(inode))
> >> + vma->vm_flags |= VM_MIXEDMAP | VM_HUGEPAGE;
> >
> > And if it isn't a DAX inode? what is MAP_DIRECT supposed to do then?
>
> In the non-DAX case it just takes the FL_LAYOUT file lease... although
> we could also just have an fcntl for that purpose. The use case of
> just freezing the block map does not need a mapping.
RIght, so I think we should just add a fcntl for the non-DAX case I
have in mind, and not complicate the MAP_DIRECT implementation right
now. We can alsways extend the scope of MAP_DIRECT in future if we
actually need to do so.
> >> + mds = map_direct_register(fd, vma);
> >> + if (IS_ERR(mds))
> >> + return PTR_ERR(mds);
> >> +
> >> + /* flush in-flight faults */
> >> + xfs_ilock(ip, XFS_MMAPLOCK_EXCL);
> >> + xfs_iunlock(ip, XFS_MMAPLOCK_EXCL);
> >
> > Urk. That's nasty. And why is it even necessary? Please explain why
> > this is necessary in the comment, because it's not at all obvious to
> > me...
>
> This is related to your other observation about i_mapdcount and adding
> an iomap_can_allocate() helper. I think I can clean both of these up
> by using a call to break_layout(inode, false) and bailing in
> ->iomap_begin() if it returns EWOULDBLOCK. This would also fix the
> current problem that allocating write-faults don't start the lease
> break process.
OK.
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
WARNING: multiple messages have this Message-ID (diff)
From: Dave Chinner <david@fromorbit.com>
To: Dan Williams <dan.j.williams@intel.com>
Cc: "linux-nvdimm@lists.01.org" <linux-nvdimm@lists.01.org>,
linux-xfs@vger.kernel.org, Jan Kara <jack@suse.cz>,
Arnd Bergmann <arnd@arndb.de>,
"Darrick J. Wong" <darrick.wong@oracle.com>,
linux-rdma@vger.kernel.org, Linux API <linux-api@vger.kernel.org>,
Christoph Hellwig <hch@lst.de>,
"J. Bruce Fields" <bfields@fieldses.org>,
Linux MM <linux-mm@kvack.org>, Jeff Moyer <jmoyer@redhat.com>,
Alexander Viro <viro@zeniv.linux.org.uk>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
Jeff Layton <jlayton@poochiereds.net>,
Ross Zwisler <ross.zwisler@linux.intel.com>
Subject: Re: [PATCH v7 06/12] xfs: wire up MAP_DIRECT
Date: Tue, 10 Oct 2017 09:50:25 +1100 [thread overview]
Message-ID: <20171009225025.GT3666@dastard> (raw)
In-Reply-To: <CAPcyv4i6WBxfVJ0yqWbuW2kiJ-wpi+iYRPk=Kykqt3U5Rrw7MA@mail.gmail.com>
On Mon, Oct 09, 2017 at 10:08:40AM -0700, Dan Williams wrote:
> On Sun, Oct 8, 2017 at 8:40 PM, Dave Chinner <david@fromorbit.com> wrote:
> >>
> >> /*
> >> * Clear the specified ranges to zero through either the pagecache or DAX.
> >> @@ -1008,6 +1018,26 @@ xfs_file_llseek(
> >> return vfs_setpos(file, offset, inode->i_sb->s_maxbytes);
> >> }
> >>
> >> +static int
> >> +xfs_vma_checks(
> >> + struct vm_area_struct *vma,
> >> + struct inode *inode)
> >
> > Exactly what are we checking for - function name doesn't tell me,
> > and there's no comments, either?
>
> Ok, I'll improve this.
>
> >
> >> +{
> >> + if (!is_xfs_map_direct(vma))
> >> + return 0;
> >> +
> >> + if (!is_map_direct_valid(vma->vm_private_data))
> >> + return VM_FAULT_SIGBUS;
> >> +
> >> + if (xfs_is_reflink_inode(XFS_I(inode)))
> >> + return VM_FAULT_SIGBUS;
> >> +
> >> + if (!IS_DAX(inode))
> >> + return VM_FAULT_SIGBUS;
> >
> > And how do we get is_xfs_map_direct() set to true if we don't have a
> > DAX inode or the inode has shared extents?
>
> So, this was my way of trying to satisfy the request you made here:
>
> https://lkml.org/lkml/2017/8/11/876
>
> i.e. allow MAP_DIRECT on non-dax files to enable a use case of
> freezing the block-map to examine which file extents are linked. If
> you don't want to use MAP_DIRECT for this, we can move these checks to
> mmap time.
Ok, but I don't want to use mmap to deal with this, nor do I care
whether DAX is in use or not. So I don't think this is really
necessary for MAP_DIRECT.
> >> +xfs_file_mmap_validate(
> >> + struct file *filp,
> >> + struct vm_area_struct *vma,
> >> + unsigned long map_flags,
> >> + int fd)
> >> +{
> >> + struct inode *inode = file_inode(filp);
> >> + struct xfs_inode *ip = XFS_I(inode);
> >> + struct map_direct_state *mds;
> >> +
> >> + if (map_flags & ~(XFS_MAP_SUPPORTED))
> >> + return -EOPNOTSUPP;
> >> +
> >> + if ((map_flags & MAP_DIRECT) == 0)
> >> + return xfs_file_mmap(filp, vma);
> >> +
> >> + file_accessed(filp);
> >> + vma->vm_ops = &xfs_file_vm_direct_ops;
> >> + if (IS_DAX(inode))
> >> + vma->vm_flags |= VM_MIXEDMAP | VM_HUGEPAGE;
> >
> > And if it isn't a DAX inode? what is MAP_DIRECT supposed to do then?
>
> In the non-DAX case it just takes the FL_LAYOUT file lease... although
> we could also just have an fcntl for that purpose. The use case of
> just freezing the block map does not need a mapping.
RIght, so I think we should just add a fcntl for the non-DAX case I
have in mind, and not complicate the MAP_DIRECT implementation right
now. We can alsways extend the scope of MAP_DIRECT in future if we
actually need to do so.
> >> + mds = map_direct_register(fd, vma);
> >> + if (IS_ERR(mds))
> >> + return PTR_ERR(mds);
> >> +
> >> + /* flush in-flight faults */
> >> + xfs_ilock(ip, XFS_MMAPLOCK_EXCL);
> >> + xfs_iunlock(ip, XFS_MMAPLOCK_EXCL);
> >
> > Urk. That's nasty. And why is it even necessary? Please explain why
> > this is necessary in the comment, because it's not at all obvious to
> > me...
>
> This is related to your other observation about i_mapdcount and adding
> an iomap_can_allocate() helper. I think I can clean both of these up
> by using a call to break_layout(inode, false) and bailing in
> ->iomap_begin() if it returns EWOULDBLOCK. This would also fix the
> current problem that allocating write-faults don't start the lease
> break process.
OK.
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2017-10-09 22:50 UTC|newest]
Thread overview: 154+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-06 22:35 [PATCH v7 00/12] MAP_DIRECT for DAX RDMA and userspace flush Dan Williams
2017-10-06 22:35 ` Dan Williams
2017-10-06 22:35 ` Dan Williams
2017-10-06 22:35 ` Dan Williams
[not found] ` <150732931273.22363.8436792888326501071.stgit-p8uTFz9XbKj2zm6wflaqv1nYeNYlB/vhral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-10-06 22:35 ` [PATCH v7 01/12] mm: introduce MAP_SHARED_VALIDATE, a mechanism to safely define new mmap flags Dan Williams
2017-10-06 22:35 ` Dan Williams
2017-10-06 22:35 ` Dan Williams
2017-10-06 22:35 ` [PATCH v7 02/12] fs, mm: pass fd to ->mmap_validate() Dan Williams
2017-10-06 22:35 ` Dan Williams
2017-10-06 22:35 ` Dan Williams
2017-10-06 22:35 ` Dan Williams
2017-10-06 22:35 ` [PATCH v7 04/12] fs: MAP_DIRECT core Dan Williams
2017-10-06 22:35 ` Dan Williams
2017-10-06 22:35 ` Dan Williams
2017-10-06 22:35 ` Dan Williams
2017-10-06 22:36 ` [PATCH v7 08/12] fs, mapdirect: introduce ->lease_direct() Dan Williams
2017-10-06 22:36 ` Dan Williams
2017-10-06 22:36 ` Dan Williams
2017-10-06 22:36 ` Dan Williams
2017-10-06 22:36 ` [PATCH v7 10/12] device-dax: wire up ->lease_direct() Dan Williams
2017-10-06 22:36 ` Dan Williams
2017-10-06 22:36 ` Dan Williams
2017-10-06 22:36 ` Dan Williams
2017-10-06 22:35 ` [PATCH v7 03/12] fs: introduce i_mapdcount Dan Williams
2017-10-06 22:35 ` Dan Williams
2017-10-06 22:35 ` Dan Williams
[not found] ` <150732933283.22363.570426117546397495.stgit-p8uTFz9XbKj2zm6wflaqv1nYeNYlB/vhral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-10-09 3:08 ` Dave Chinner
2017-10-09 3:08 ` Dave Chinner
2017-10-09 3:08 ` Dave Chinner
2017-10-09 3:08 ` Dave Chinner
2017-10-06 22:35 ` [PATCH v7 05/12] xfs: prepare xfs_break_layouts() for reuse with MAP_DIRECT Dan Williams
2017-10-06 22:35 ` Dan Williams
2017-10-06 22:35 ` Dan Williams
2017-10-06 22:35 ` [PATCH v7 06/12] xfs: wire up MAP_DIRECT Dan Williams
2017-10-06 22:35 ` Dan Williams
2017-10-06 22:35 ` Dan Williams
2017-10-09 3:40 ` Dave Chinner
2017-10-09 3:40 ` Dave Chinner
2017-10-09 3:40 ` Dave Chinner
2017-10-09 17:08 ` Dan Williams
2017-10-09 17:08 ` Dan Williams
2017-10-09 17:08 ` Dan Williams
2017-10-09 22:50 ` Dave Chinner [this message]
2017-10-09 22:50 ` Dave Chinner
2017-10-06 22:35 ` [PATCH v7 07/12] dma-mapping: introduce dma_has_iommu() Dan Williams
2017-10-06 22:35 ` Dan Williams
2017-10-06 22:35 ` Dan Williams
2017-10-06 22:45 ` David Woodhouse
[not found] ` <1507329939.29211.434.camel-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2017-10-06 22:52 ` Dan Williams
2017-10-06 22:52 ` Dan Williams
2017-10-06 22:52 ` Dan Williams
2017-10-06 22:52 ` Dan Williams
[not found] ` <CAPcyv4jLj2WOgPA+B5eYME0uZyuoy3gp35w+4rCa_EZxm-QSKA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-10-06 23:10 ` David Woodhouse
2017-10-06 23:10 ` David Woodhouse
[not found] ` <1507331434.29211.439.camel-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2017-10-06 23:15 ` Dan Williams
2017-10-06 23:15 ` Dan Williams
2017-10-06 23:15 ` Dan Williams
2017-10-06 23:15 ` Dan Williams
2017-10-07 11:08 ` David Woodhouse
[not found] ` <1507374524.25529.13.camel-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2017-10-07 23:33 ` Dan Williams
2017-10-07 23:33 ` Dan Williams
2017-10-07 23:33 ` Dan Williams
2017-10-07 23:33 ` Dan Williams
2017-10-06 23:12 ` Dan Williams
2017-10-06 23:12 ` Dan Williams
2017-10-08 3:45 ` [PATCH v8] dma-mapping: introduce dma_get_iommu_domain() Dan Williams
2017-10-08 3:45 ` Dan Williams
2017-10-08 3:45 ` Dan Williams
[not found] ` <150743420333.12880.6968831423519457797.stgit-p8uTFz9XbKj2zm6wflaqv1nYeNYlB/vhral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-10-09 10:37 ` Robin Murphy
2017-10-09 10:37 ` Robin Murphy
2017-10-09 10:37 ` Robin Murphy
2017-10-09 10:37 ` Robin Murphy
2017-10-09 17:32 ` Dan Williams
2017-10-09 17:32 ` Dan Williams
2017-10-10 14:40 ` Raj, Ashok
2017-10-10 14:40 ` Raj, Ashok
[not found] ` <150732935473.22363.1853399637339625023.stgit-p8uTFz9XbKj2zm6wflaqv1nYeNYlB/vhral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-10-09 18:58 ` [PATCH v7 07/12] dma-mapping: introduce dma_has_iommu() Jason Gunthorpe
2017-10-09 18:58 ` Jason Gunthorpe
2017-10-09 18:58 ` Jason Gunthorpe
2017-10-09 18:58 ` Jason Gunthorpe
2017-10-09 19:05 ` Dan Williams
2017-10-09 19:05 ` Dan Williams
[not found] ` <CAPcyv4gXzC8OUgO_PciQ2phyq0YtmXjMGWvoPSVVuuZR7ohVCg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-10-09 19:18 ` Jason Gunthorpe
2017-10-09 19:18 ` Jason Gunthorpe
2017-10-09 19:18 ` Jason Gunthorpe
2017-10-09 19:18 ` Jason Gunthorpe
[not found] ` <20171009191820.GD15336-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-10-09 19:28 ` Dan Williams
2017-10-09 19:28 ` Dan Williams
2017-10-09 19:28 ` Dan Williams
2017-10-09 19:28 ` Dan Williams
[not found] ` <CAPcyv4h_uQGBAX6-bMkkZLO_YyQ6t4n_b8tH8wU_P0Jh23N5MQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-10-10 17:25 ` Jason Gunthorpe
2017-10-10 17:25 ` Jason Gunthorpe
2017-10-10 17:25 ` Jason Gunthorpe
2017-10-10 17:25 ` Jason Gunthorpe
[not found] ` <20171010172516.GA29915-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-10-10 17:39 ` Dan Williams
2017-10-10 17:39 ` Dan Williams
2017-10-10 17:39 ` Dan Williams
2017-10-10 17:39 ` Dan Williams
[not found] ` <CAPcyv4jL5fN7jjXkQum8ERQ45eW63dCYp5Pm6aHY4OPudz4Wsw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-10-10 18:05 ` Jason Gunthorpe
2017-10-10 18:05 ` Jason Gunthorpe
2017-10-10 18:05 ` Jason Gunthorpe
2017-10-10 18:05 ` Jason Gunthorpe
2017-10-10 20:17 ` Dan Williams
2017-10-10 20:17 ` Dan Williams
2017-10-10 20:17 ` Dan Williams
2017-10-12 18:27 ` Jason Gunthorpe
2017-10-12 18:27 ` Jason Gunthorpe
2017-10-12 18:27 ` Jason Gunthorpe
2017-10-12 20:10 ` Dan Williams
2017-10-12 20:10 ` Dan Williams
2017-10-13 6:50 ` Christoph Hellwig
2017-10-13 6:50 ` Christoph Hellwig
2017-10-13 6:50 ` Christoph Hellwig
[not found] ` <20171013065047.GA26461-jcswGhMUV9g@public.gmane.org>
2017-10-13 15:03 ` Jason Gunthorpe
2017-10-13 15:03 ` Jason Gunthorpe
2017-10-13 15:03 ` Jason Gunthorpe
2017-10-13 15:03 ` Jason Gunthorpe
[not found] ` <20171013150348.GA11257-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-10-15 15:14 ` Matan Barak
2017-10-15 15:14 ` Matan Barak
2017-10-15 15:14 ` Matan Barak
2017-10-15 15:14 ` Matan Barak
[not found] ` <CAAKD3BBR2CmQvg-3bqPog0VFrEm=QU-b-xBDH-_Q+sXV9NkFUA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-10-15 15:21 ` Dan Williams
2017-10-15 15:21 ` Dan Williams
2017-10-15 15:21 ` Dan Williams
2017-10-13 7:09 ` Christoph Hellwig
2017-10-13 7:09 ` Christoph Hellwig
2017-10-13 7:09 ` Christoph Hellwig
2017-10-06 22:36 ` [PATCH v7 09/12] xfs: wire up ->lease_direct() Dan Williams
2017-10-06 22:36 ` Dan Williams
2017-10-06 22:36 ` Dan Williams
[not found] ` <150732936625.22363.7638037715540836828.stgit-p8uTFz9XbKj2zm6wflaqv1nYeNYlB/vhral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-10-09 3:45 ` Dave Chinner
2017-10-09 3:45 ` Dave Chinner
2017-10-09 3:45 ` Dave Chinner
2017-10-09 3:45 ` Dave Chinner
2017-10-09 17:10 ` Dan Williams
2017-10-09 17:10 ` Dan Williams
2017-10-06 22:36 ` [PATCH v7 11/12] IB/core: use MAP_DIRECT to fix / enable RDMA to DAX mappings Dan Williams
2017-10-06 22:36 ` Dan Williams
2017-10-06 22:36 ` Dan Williams
2017-10-08 4:02 ` [PATCH v8 1/2] iommu: up-level sg_num_pages() from amd-iommu Dan Williams
2017-10-08 4:02 ` Dan Williams
2017-10-08 4:02 ` Dan Williams
2017-10-08 4:04 ` [PATCH v8 2/2] IB/core: use MAP_DIRECT to fix / enable RDMA to DAX mappings Dan Williams
2017-10-08 4:04 ` Dan Williams
2017-10-08 4:04 ` Dan Williams
[not found] ` <150743537023.13602.3520782942682280917.stgit-p8uTFz9XbKj2zm6wflaqv1nYeNYlB/vhral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-10-08 6:45 ` kbuild test robot
2017-10-08 6:45 ` kbuild test robot
2017-10-08 6:45 ` kbuild test robot
[not found] ` <201710081447.sQSonloO%fengguang.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-10-08 15:49 ` Dan Williams
2017-10-08 15:49 ` Dan Williams
2017-10-08 15:49 ` Dan Williams
2017-10-06 22:36 ` [PATCH v7 12/12] tools/testing/nvdimm: enable rdma unit tests Dan Williams
2017-10-06 22:36 ` Dan Williams
2017-10-06 22:36 ` Dan Williams
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171009225025.GT3666@dastard \
--to=david@fromorbit.com \
--cc=arnd@arndb.de \
--cc=bfields@fieldses.org \
--cc=dan.j.williams@intel.com \
--cc=darrick.wong@oracle.com \
--cc=hch@lst.de \
--cc=jack@suse.cz \
--cc=jlayton@poochiereds.net \
--cc=jmoyer@redhat.com \
--cc=linux-api@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-nvdimm@lists.01.org \
--cc=linux-rdma@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=ross.zwisler@linux.intel.com \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.