All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Snitzer <snitzer@redhat.com>
To: Dan Williams <dan.j.williams@intel.com>
Cc: Christoph Hellwig <hch@lst.de>, Ira Weiny <ira.weiny@intel.com>,
	device-mapper development <dm-devel@redhat.com>,
	linux-xfs <linux-xfs@vger.kernel.org>,
	Linux NVDIMM <nvdimm@lists.linux.dev>,
	linux-s390 <linux-s390@vger.kernel.org>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	linux-erofs@lists.ozlabs.org,
	linux-ext4 <linux-ext4@vger.kernel.org>,
	virtualization@lists.linux-foundation.org
Subject: Re: [PATCH 07/11] dax: remove dax_capable
Date: Mon, 1 Nov 2021 12:17:43 -0400	[thread overview]
Message-ID: <YYATJ+oDT15TD9Np@redhat.com> (raw)
In-Reply-To: <CAPcyv4gE8UXjQAe_6=BKFRCyLWNP_9CNxKFH---RpPnYfmBQLg@mail.gmail.com>

On Wed, Oct 27 2021 at  8:16P -0400,
Dan Williams <dan.j.williams@intel.com> wrote:

> I am going to change the subject of this patch to:
> 
> dax: remove ->dax_supported()
> 
> On Sun, Oct 17, 2021 at 9:41 PM Christoph Hellwig <hch@lst.de> wrote:
> >
> 
> I'll add a bit more background to help others review this.
> 
> The ->dax_supported() operation arranges for a stack of devices to
> each answer the question "is dax operational". That request routes to
> generic_fsdax_supported() at last level device and that attempted an
> actual dax_direct_access() call and did some sanity checks. However,
> those sanity checks can be validated in other ways and with those
> removed the only question to answer is "has each block device driver
> in the stack performed dax_add_host()". That can be validated without
> a dax_operation. So, just open code the block size and dax_dev == NULL
> checks in the callers, and delete ->dax_supported().
> 
> Mike, let me know if you have any concerns.

Thanks for your additional background, it helped.


> 
> > Just open code the block size and dax_dev == NULL checks in the callers.
> >
> > Signed-off-by: Christoph Hellwig <hch@lst.de>
> > ---
> >  drivers/dax/super.c          | 36 ------------------------------------
> >  drivers/md/dm-table.c        | 22 +++++++++++-----------
> >  drivers/md/dm.c              | 21 ---------------------
> >  drivers/md/dm.h              |  4 ----
> >  drivers/nvdimm/pmem.c        |  1 -
> >  drivers/s390/block/dcssblk.c |  1 -
> >  fs/erofs/super.c             | 11 +++++++----
> >  fs/ext2/super.c              |  6 ++++--
> >  fs/ext4/super.c              |  9 ++++++---
> >  fs/xfs/xfs_super.c           | 21 ++++++++-------------
> >  include/linux/dax.h          | 14 --------------
> >  11 files changed, 36 insertions(+), 110 deletions(-)
> >
> > diff --git a/drivers/dax/super.c b/drivers/dax/super.c
> > index 482fe775324a4..803942586d1b6 100644
> > --- a/drivers/dax/super.c
> > +++ b/drivers/dax/super.c
> > @@ -108,42 +108,6 @@ struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev)
> >         return dax_dev;
> >  }
> >  EXPORT_SYMBOL_GPL(fs_dax_get_by_bdev);
> > -
> > -bool generic_fsdax_supported(struct dax_device *dax_dev,
> > -               struct block_device *bdev, int blocksize, sector_t start,
> > -               sector_t sectors)
> > -{
> > -       if (blocksize != PAGE_SIZE) {
> > -               pr_info("%pg: error: unsupported blocksize for dax\n", bdev);
> > -               return false;
> > -       }
> > -
> > -       if (!dax_dev) {
> > -               pr_debug("%pg: error: dax unsupported by block device\n", bdev);
> > -               return false;
> > -       }
> > -
> > -       return true;
> > -}
> > -EXPORT_SYMBOL_GPL(generic_fsdax_supported);
> > -
> > -bool dax_supported(struct dax_device *dax_dev, struct block_device *bdev,
> > -               int blocksize, sector_t start, sector_t len)
> > -{
> > -       bool ret = false;
> > -       int id;
> > -
> > -       if (!dax_dev)
> > -               return false;
> > -
> > -       id = dax_read_lock();
> > -       if (dax_alive(dax_dev) && dax_dev->ops->dax_supported)
> > -               ret = dax_dev->ops->dax_supported(dax_dev, bdev, blocksize,
> > -                                                 start, len);
> > -       dax_read_unlock(id);
> > -       return ret;
> > -}
> > -EXPORT_SYMBOL_GPL(dax_supported);
> >  #endif /* CONFIG_BLOCK && CONFIG_FS_DAX */
> >
> >  enum dax_device_flags {
> > diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
> > index 1fa4d5582dca5..4ae671c2168ea 100644
> > --- a/drivers/md/dm-table.c
> > +++ b/drivers/md/dm-table.c
> > @@ -807,12 +807,14 @@ void dm_table_set_type(struct dm_table *t, enum dm_queue_mode type)
> >  EXPORT_SYMBOL_GPL(dm_table_set_type);
> >
> >  /* validate the dax capability of the target device span */
> > -int device_not_dax_capable(struct dm_target *ti, struct dm_dev *dev,
> > +static int device_not_dax_capable(struct dm_target *ti, struct dm_dev *dev,
> >                         sector_t start, sector_t len, void *data)
> >  {
> > -       int blocksize = *(int *) data;
> > +       if (dev->dax_dev)
> > +               return false;
> >
> > -       return !dax_supported(dev->dax_dev, dev->bdev, blocksize, start, len);
> > +       pr_debug("%pg: error: dax unsupported by block device\n", dev->bdev);

Would prefer the use of DMDEBUG() here (which doesn't need trailing \n)

But otherwise:
Acked-by: Mike Snitzer <snitzer@redhat.com>


WARNING: multiple messages have this Message-ID (diff)
From: Mike Snitzer <snitzer@redhat.com>
To: Dan Williams <dan.j.williams@intel.com>
Cc: Linux NVDIMM <nvdimm@lists.linux.dev>,
	linux-s390 <linux-s390@vger.kernel.org>,
	linux-erofs@lists.ozlabs.org,
	virtualization@lists.linux-foundation.org,
	linux-xfs <linux-xfs@vger.kernel.org>,
	device-mapper development <dm-devel@redhat.com>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	linux-ext4 <linux-ext4@vger.kernel.org>,
	Ira Weiny <ira.weiny@intel.com>, Christoph Hellwig <hch@lst.de>
Subject: Re: [PATCH 07/11] dax: remove dax_capable
Date: Mon, 1 Nov 2021 12:17:43 -0400	[thread overview]
Message-ID: <YYATJ+oDT15TD9Np@redhat.com> (raw)
In-Reply-To: <CAPcyv4gE8UXjQAe_6=BKFRCyLWNP_9CNxKFH---RpPnYfmBQLg@mail.gmail.com>

On Wed, Oct 27 2021 at  8:16P -0400,
Dan Williams <dan.j.williams@intel.com> wrote:

> I am going to change the subject of this patch to:
> 
> dax: remove ->dax_supported()
> 
> On Sun, Oct 17, 2021 at 9:41 PM Christoph Hellwig <hch@lst.de> wrote:
> >
> 
> I'll add a bit more background to help others review this.
> 
> The ->dax_supported() operation arranges for a stack of devices to
> each answer the question "is dax operational". That request routes to
> generic_fsdax_supported() at last level device and that attempted an
> actual dax_direct_access() call and did some sanity checks. However,
> those sanity checks can be validated in other ways and with those
> removed the only question to answer is "has each block device driver
> in the stack performed dax_add_host()". That can be validated without
> a dax_operation. So, just open code the block size and dax_dev == NULL
> checks in the callers, and delete ->dax_supported().
> 
> Mike, let me know if you have any concerns.

Thanks for your additional background, it helped.


> 
> > Just open code the block size and dax_dev == NULL checks in the callers.
> >
> > Signed-off-by: Christoph Hellwig <hch@lst.de>
> > ---
> >  drivers/dax/super.c          | 36 ------------------------------------
> >  drivers/md/dm-table.c        | 22 +++++++++++-----------
> >  drivers/md/dm.c              | 21 ---------------------
> >  drivers/md/dm.h              |  4 ----
> >  drivers/nvdimm/pmem.c        |  1 -
> >  drivers/s390/block/dcssblk.c |  1 -
> >  fs/erofs/super.c             | 11 +++++++----
> >  fs/ext2/super.c              |  6 ++++--
> >  fs/ext4/super.c              |  9 ++++++---
> >  fs/xfs/xfs_super.c           | 21 ++++++++-------------
> >  include/linux/dax.h          | 14 --------------
> >  11 files changed, 36 insertions(+), 110 deletions(-)
> >
> > diff --git a/drivers/dax/super.c b/drivers/dax/super.c
> > index 482fe775324a4..803942586d1b6 100644
> > --- a/drivers/dax/super.c
> > +++ b/drivers/dax/super.c
> > @@ -108,42 +108,6 @@ struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev)
> >         return dax_dev;
> >  }
> >  EXPORT_SYMBOL_GPL(fs_dax_get_by_bdev);
> > -
> > -bool generic_fsdax_supported(struct dax_device *dax_dev,
> > -               struct block_device *bdev, int blocksize, sector_t start,
> > -               sector_t sectors)
> > -{
> > -       if (blocksize != PAGE_SIZE) {
> > -               pr_info("%pg: error: unsupported blocksize for dax\n", bdev);
> > -               return false;
> > -       }
> > -
> > -       if (!dax_dev) {
> > -               pr_debug("%pg: error: dax unsupported by block device\n", bdev);
> > -               return false;
> > -       }
> > -
> > -       return true;
> > -}
> > -EXPORT_SYMBOL_GPL(generic_fsdax_supported);
> > -
> > -bool dax_supported(struct dax_device *dax_dev, struct block_device *bdev,
> > -               int blocksize, sector_t start, sector_t len)
> > -{
> > -       bool ret = false;
> > -       int id;
> > -
> > -       if (!dax_dev)
> > -               return false;
> > -
> > -       id = dax_read_lock();
> > -       if (dax_alive(dax_dev) && dax_dev->ops->dax_supported)
> > -               ret = dax_dev->ops->dax_supported(dax_dev, bdev, blocksize,
> > -                                                 start, len);
> > -       dax_read_unlock(id);
> > -       return ret;
> > -}
> > -EXPORT_SYMBOL_GPL(dax_supported);
> >  #endif /* CONFIG_BLOCK && CONFIG_FS_DAX */
> >
> >  enum dax_device_flags {
> > diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
> > index 1fa4d5582dca5..4ae671c2168ea 100644
> > --- a/drivers/md/dm-table.c
> > +++ b/drivers/md/dm-table.c
> > @@ -807,12 +807,14 @@ void dm_table_set_type(struct dm_table *t, enum dm_queue_mode type)
> >  EXPORT_SYMBOL_GPL(dm_table_set_type);
> >
> >  /* validate the dax capability of the target device span */
> > -int device_not_dax_capable(struct dm_target *ti, struct dm_dev *dev,
> > +static int device_not_dax_capable(struct dm_target *ti, struct dm_dev *dev,
> >                         sector_t start, sector_t len, void *data)
> >  {
> > -       int blocksize = *(int *) data;
> > +       if (dev->dax_dev)
> > +               return false;
> >
> > -       return !dax_supported(dev->dax_dev, dev->bdev, blocksize, start, len);
> > +       pr_debug("%pg: error: dax unsupported by block device\n", dev->bdev);

Would prefer the use of DMDEBUG() here (which doesn't need trailing \n)

But otherwise:
Acked-by: Mike Snitzer <snitzer@redhat.com>

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

WARNING: multiple messages have this Message-ID (diff)
From: Mike Snitzer <snitzer@redhat.com>
To: Dan Williams <dan.j.williams@intel.com>
Cc: Linux NVDIMM <nvdimm@lists.linux.dev>,
	linux-s390 <linux-s390@vger.kernel.org>,
	linux-erofs@lists.ozlabs.org,
	virtualization@lists.linux-foundation.org,
	linux-xfs <linux-xfs@vger.kernel.org>,
	device-mapper development <dm-devel@redhat.com>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	linux-ext4 <linux-ext4@vger.kernel.org>,
	Ira Weiny <ira.weiny@intel.com>, Christoph Hellwig <hch@lst.de>
Subject: Re: [PATCH 07/11] dax: remove dax_capable
Date: Mon, 1 Nov 2021 12:17:43 -0400	[thread overview]
Message-ID: <YYATJ+oDT15TD9Np@redhat.com> (raw)
In-Reply-To: <CAPcyv4gE8UXjQAe_6=BKFRCyLWNP_9CNxKFH---RpPnYfmBQLg@mail.gmail.com>

On Wed, Oct 27 2021 at  8:16P -0400,
Dan Williams <dan.j.williams@intel.com> wrote:

> I am going to change the subject of this patch to:
> 
> dax: remove ->dax_supported()
> 
> On Sun, Oct 17, 2021 at 9:41 PM Christoph Hellwig <hch@lst.de> wrote:
> >
> 
> I'll add a bit more background to help others review this.
> 
> The ->dax_supported() operation arranges for a stack of devices to
> each answer the question "is dax operational". That request routes to
> generic_fsdax_supported() at last level device and that attempted an
> actual dax_direct_access() call and did some sanity checks. However,
> those sanity checks can be validated in other ways and with those
> removed the only question to answer is "has each block device driver
> in the stack performed dax_add_host()". That can be validated without
> a dax_operation. So, just open code the block size and dax_dev == NULL
> checks in the callers, and delete ->dax_supported().
> 
> Mike, let me know if you have any concerns.

Thanks for your additional background, it helped.


> 
> > Just open code the block size and dax_dev == NULL checks in the callers.
> >
> > Signed-off-by: Christoph Hellwig <hch@lst.de>
> > ---
> >  drivers/dax/super.c          | 36 ------------------------------------
> >  drivers/md/dm-table.c        | 22 +++++++++++-----------
> >  drivers/md/dm.c              | 21 ---------------------
> >  drivers/md/dm.h              |  4 ----
> >  drivers/nvdimm/pmem.c        |  1 -
> >  drivers/s390/block/dcssblk.c |  1 -
> >  fs/erofs/super.c             | 11 +++++++----
> >  fs/ext2/super.c              |  6 ++++--
> >  fs/ext4/super.c              |  9 ++++++---
> >  fs/xfs/xfs_super.c           | 21 ++++++++-------------
> >  include/linux/dax.h          | 14 --------------
> >  11 files changed, 36 insertions(+), 110 deletions(-)
> >
> > diff --git a/drivers/dax/super.c b/drivers/dax/super.c
> > index 482fe775324a4..803942586d1b6 100644
> > --- a/drivers/dax/super.c
> > +++ b/drivers/dax/super.c
> > @@ -108,42 +108,6 @@ struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev)
> >         return dax_dev;
> >  }
> >  EXPORT_SYMBOL_GPL(fs_dax_get_by_bdev);
> > -
> > -bool generic_fsdax_supported(struct dax_device *dax_dev,
> > -               struct block_device *bdev, int blocksize, sector_t start,
> > -               sector_t sectors)
> > -{
> > -       if (blocksize != PAGE_SIZE) {
> > -               pr_info("%pg: error: unsupported blocksize for dax\n", bdev);
> > -               return false;
> > -       }
> > -
> > -       if (!dax_dev) {
> > -               pr_debug("%pg: error: dax unsupported by block device\n", bdev);
> > -               return false;
> > -       }
> > -
> > -       return true;
> > -}
> > -EXPORT_SYMBOL_GPL(generic_fsdax_supported);
> > -
> > -bool dax_supported(struct dax_device *dax_dev, struct block_device *bdev,
> > -               int blocksize, sector_t start, sector_t len)
> > -{
> > -       bool ret = false;
> > -       int id;
> > -
> > -       if (!dax_dev)
> > -               return false;
> > -
> > -       id = dax_read_lock();
> > -       if (dax_alive(dax_dev) && dax_dev->ops->dax_supported)
> > -               ret = dax_dev->ops->dax_supported(dax_dev, bdev, blocksize,
> > -                                                 start, len);
> > -       dax_read_unlock(id);
> > -       return ret;
> > -}
> > -EXPORT_SYMBOL_GPL(dax_supported);
> >  #endif /* CONFIG_BLOCK && CONFIG_FS_DAX */
> >
> >  enum dax_device_flags {
> > diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
> > index 1fa4d5582dca5..4ae671c2168ea 100644
> > --- a/drivers/md/dm-table.c
> > +++ b/drivers/md/dm-table.c
> > @@ -807,12 +807,14 @@ void dm_table_set_type(struct dm_table *t, enum dm_queue_mode type)
> >  EXPORT_SYMBOL_GPL(dm_table_set_type);
> >
> >  /* validate the dax capability of the target device span */
> > -int device_not_dax_capable(struct dm_target *ti, struct dm_dev *dev,
> > +static int device_not_dax_capable(struct dm_target *ti, struct dm_dev *dev,
> >                         sector_t start, sector_t len, void *data)
> >  {
> > -       int blocksize = *(int *) data;
> > +       if (dev->dax_dev)
> > +               return false;
> >
> > -       return !dax_supported(dev->dax_dev, dev->bdev, blocksize, start, len);
> > +       pr_debug("%pg: error: dax unsupported by block device\n", dev->bdev);

Would prefer the use of DMDEBUG() here (which doesn't need trailing \n)

But otherwise:
Acked-by: Mike Snitzer <snitzer@redhat.com>


WARNING: multiple messages have this Message-ID (diff)
From: Mike Snitzer <snitzer@redhat.com>
To: Dan Williams <dan.j.williams@intel.com>
Cc: Linux NVDIMM <nvdimm@lists.linux.dev>,
	linux-s390 <linux-s390@vger.kernel.org>,
	linux-erofs@lists.ozlabs.org,
	virtualization@lists.linux-foundation.org,
	linux-xfs <linux-xfs@vger.kernel.org>,
	device-mapper development <dm-devel@redhat.com>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	linux-ext4 <linux-ext4@vger.kernel.org>,
	Ira Weiny <ira.weiny@intel.com>, Christoph Hellwig <hch@lst.de>
Subject: Re: [dm-devel] [PATCH 07/11] dax: remove dax_capable
Date: Mon, 1 Nov 2021 12:17:43 -0400	[thread overview]
Message-ID: <YYATJ+oDT15TD9Np@redhat.com> (raw)
In-Reply-To: <CAPcyv4gE8UXjQAe_6=BKFRCyLWNP_9CNxKFH---RpPnYfmBQLg@mail.gmail.com>

On Wed, Oct 27 2021 at  8:16P -0400,
Dan Williams <dan.j.williams@intel.com> wrote:

> I am going to change the subject of this patch to:
> 
> dax: remove ->dax_supported()
> 
> On Sun, Oct 17, 2021 at 9:41 PM Christoph Hellwig <hch@lst.de> wrote:
> >
> 
> I'll add a bit more background to help others review this.
> 
> The ->dax_supported() operation arranges for a stack of devices to
> each answer the question "is dax operational". That request routes to
> generic_fsdax_supported() at last level device and that attempted an
> actual dax_direct_access() call and did some sanity checks. However,
> those sanity checks can be validated in other ways and with those
> removed the only question to answer is "has each block device driver
> in the stack performed dax_add_host()". That can be validated without
> a dax_operation. So, just open code the block size and dax_dev == NULL
> checks in the callers, and delete ->dax_supported().
> 
> Mike, let me know if you have any concerns.

Thanks for your additional background, it helped.


> 
> > Just open code the block size and dax_dev == NULL checks in the callers.
> >
> > Signed-off-by: Christoph Hellwig <hch@lst.de>
> > ---
> >  drivers/dax/super.c          | 36 ------------------------------------
> >  drivers/md/dm-table.c        | 22 +++++++++++-----------
> >  drivers/md/dm.c              | 21 ---------------------
> >  drivers/md/dm.h              |  4 ----
> >  drivers/nvdimm/pmem.c        |  1 -
> >  drivers/s390/block/dcssblk.c |  1 -
> >  fs/erofs/super.c             | 11 +++++++----
> >  fs/ext2/super.c              |  6 ++++--
> >  fs/ext4/super.c              |  9 ++++++---
> >  fs/xfs/xfs_super.c           | 21 ++++++++-------------
> >  include/linux/dax.h          | 14 --------------
> >  11 files changed, 36 insertions(+), 110 deletions(-)
> >
> > diff --git a/drivers/dax/super.c b/drivers/dax/super.c
> > index 482fe775324a4..803942586d1b6 100644
> > --- a/drivers/dax/super.c
> > +++ b/drivers/dax/super.c
> > @@ -108,42 +108,6 @@ struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev)
> >         return dax_dev;
> >  }
> >  EXPORT_SYMBOL_GPL(fs_dax_get_by_bdev);
> > -
> > -bool generic_fsdax_supported(struct dax_device *dax_dev,
> > -               struct block_device *bdev, int blocksize, sector_t start,
> > -               sector_t sectors)
> > -{
> > -       if (blocksize != PAGE_SIZE) {
> > -               pr_info("%pg: error: unsupported blocksize for dax\n", bdev);
> > -               return false;
> > -       }
> > -
> > -       if (!dax_dev) {
> > -               pr_debug("%pg: error: dax unsupported by block device\n", bdev);
> > -               return false;
> > -       }
> > -
> > -       return true;
> > -}
> > -EXPORT_SYMBOL_GPL(generic_fsdax_supported);
> > -
> > -bool dax_supported(struct dax_device *dax_dev, struct block_device *bdev,
> > -               int blocksize, sector_t start, sector_t len)
> > -{
> > -       bool ret = false;
> > -       int id;
> > -
> > -       if (!dax_dev)
> > -               return false;
> > -
> > -       id = dax_read_lock();
> > -       if (dax_alive(dax_dev) && dax_dev->ops->dax_supported)
> > -               ret = dax_dev->ops->dax_supported(dax_dev, bdev, blocksize,
> > -                                                 start, len);
> > -       dax_read_unlock(id);
> > -       return ret;
> > -}
> > -EXPORT_SYMBOL_GPL(dax_supported);
> >  #endif /* CONFIG_BLOCK && CONFIG_FS_DAX */
> >
> >  enum dax_device_flags {
> > diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
> > index 1fa4d5582dca5..4ae671c2168ea 100644
> > --- a/drivers/md/dm-table.c
> > +++ b/drivers/md/dm-table.c
> > @@ -807,12 +807,14 @@ void dm_table_set_type(struct dm_table *t, enum dm_queue_mode type)
> >  EXPORT_SYMBOL_GPL(dm_table_set_type);
> >
> >  /* validate the dax capability of the target device span */
> > -int device_not_dax_capable(struct dm_target *ti, struct dm_dev *dev,
> > +static int device_not_dax_capable(struct dm_target *ti, struct dm_dev *dev,
> >                         sector_t start, sector_t len, void *data)
> >  {
> > -       int blocksize = *(int *) data;
> > +       if (dev->dax_dev)
> > +               return false;
> >
> > -       return !dax_supported(dev->dax_dev, dev->bdev, blocksize, start, len);
> > +       pr_debug("%pg: error: dax unsupported by block device\n", dev->bdev);

Would prefer the use of DMDEBUG() here (which doesn't need trailing \n)

But otherwise:
Acked-by: Mike Snitzer <snitzer@redhat.com>

--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel


  reply	other threads:[~2021-11-01 16:17 UTC|newest]

Thread overview: 197+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-18  4:40 futher decouple DAX from block devices Christoph Hellwig
2021-10-18  4:40 ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40 ` Christoph Hellwig
2021-10-18  4:40 ` Christoph Hellwig
2021-10-18  4:40 ` Christoph Hellwig
2021-10-18  4:40 ` [PATCH 01/11] dm: make the DAX support dependend on CONFIG_FS_DAX Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-27 20:53   ` Dan Williams
2021-10-27 20:53     ` [dm-devel] " Dan Williams
2021-10-27 20:53     ` Dan Williams
2021-10-27 20:53     ` Dan Williams
2021-11-01 16:12     ` Mike Snitzer
2021-11-01 16:12       ` Mike Snitzer
2021-11-01 16:12       ` [dm-devel] " Mike Snitzer
2021-11-01 16:12       ` Mike Snitzer
2021-10-18  4:40 ` [PATCH 02/11] dax: remove CONFIG_DAX_DRIVER Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-27 20:54   ` Dan Williams
2021-10-27 20:54     ` [dm-devel] " Dan Williams
2021-10-27 20:54     ` Dan Williams
2021-10-27 20:54     ` Dan Williams
2021-10-18  4:40 ` [PATCH 03/11] dax: simplify the dax_device <-> gendisk association Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-27 22:03   ` Dan Williams
2021-10-27 22:03     ` [dm-devel] " Dan Williams
2021-10-27 22:03     ` Dan Williams
2021-10-27 22:03     ` Dan Williams
2021-10-29  4:57   ` Ira Weiny
2021-10-29  4:57     ` [dm-devel] " Ira Weiny
2021-10-29  4:57     ` Ira Weiny
2021-10-29  4:57     ` Ira Weiny
2021-11-01 16:28   ` Mike Snitzer
2021-11-01 16:28     ` [dm-devel] " Mike Snitzer
2021-11-01 16:28     ` Mike Snitzer
2021-11-01 16:28     ` Mike Snitzer
2021-10-18  4:40 ` [PATCH 04/11] dax: remove the pgmap sanity checks in generic_fsdax_supported Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-27 23:02   ` Dan Williams
2021-10-27 23:02     ` Dan Williams
2021-10-27 23:02     ` [dm-devel] " Dan Williams
2021-10-27 23:02     ` Dan Williams
2021-10-18  4:40 ` [PATCH 05/11] dax: move the partition alignment check into fs_dax_get_by_bdev Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-27 23:07   ` Dan Williams
2021-10-27 23:07     ` Dan Williams
2021-10-27 23:07     ` [dm-devel] " Dan Williams
2021-10-27 23:07     ` Dan Williams
2021-10-18  4:40 ` [PATCH 06/11] xfs: factor out a xfs_setup_dax helper Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18 16:43   ` Darrick J. Wong
2021-10-18 16:43     ` [dm-devel] " Darrick J. Wong
2021-10-18 16:43     ` Darrick J. Wong
2021-10-19  7:23     ` Christoph Hellwig
2021-10-19  7:23       ` Christoph Hellwig
2021-10-19  7:23       ` [dm-devel] " Christoph Hellwig
2021-10-19  7:23       ` Christoph Hellwig
2021-10-27 23:37       ` Dan Williams
2021-10-27 23:37         ` [dm-devel] " Dan Williams
2021-10-27 23:37         ` Dan Williams
2021-10-27 23:37         ` Dan Williams
2021-10-18  4:40 ` [PATCH 07/11] dax: remove dax_capable Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18 12:25   ` Gao Xiang
2021-10-18 12:25     ` [dm-devel] " Gao Xiang
2021-10-18 12:25     ` Gao Xiang
2021-10-19 15:44   ` [dm-devel] " Darrick J. Wong
2021-10-19 15:44     ` Darrick J. Wong
2021-10-19 15:44     ` Darrick J. Wong
2021-10-28  0:20     ` Dan Williams
2021-10-28  0:20       ` Dan Williams
2021-10-28  0:20       ` Dan Williams
2021-10-28  0:20       ` Dan Williams
2021-10-28  0:16   ` Dan Williams
2021-10-28  0:16     ` [dm-devel] " Dan Williams
2021-10-28  0:16     ` Dan Williams
2021-10-28  0:16     ` Dan Williams
2021-11-01 16:17     ` Mike Snitzer [this message]
2021-11-01 16:17       ` [dm-devel] " Mike Snitzer
2021-11-01 16:17       ` Mike Snitzer
2021-11-01 16:17       ` Mike Snitzer
2021-10-18  4:40 ` [PATCH 08/11] dm-linear: add a linear_dax_pgoff helper Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-28  1:32   ` Dan Williams
2021-10-28  1:32     ` [dm-devel] " Dan Williams
2021-10-28  1:32     ` Dan Williams
2021-10-28  1:32     ` Dan Williams
2021-11-01 16:18     ` Mike Snitzer
2021-11-01 16:18       ` [dm-devel] " Mike Snitzer
2021-11-01 16:18       ` Mike Snitzer
2021-11-01 16:18       ` Mike Snitzer
2021-10-18  4:40 ` [PATCH 09/11] dm-log-writes: add a log_writes_dax_pgoff helper Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-28  1:36   ` Dan Williams
2021-10-28  1:36     ` [dm-devel] " Dan Williams
2021-10-28  1:36     ` Dan Williams
2021-10-28  1:36     ` Dan Williams
2021-11-01 16:19     ` Mike Snitzer
2021-11-01 16:19       ` [dm-devel] " Mike Snitzer
2021-11-01 16:19       ` Mike Snitzer
2021-11-01 16:19       ` Mike Snitzer
2021-10-18  4:40 ` [PATCH 10/11] dm-stripe: add a stripe_dax_pgoff helper Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-28  1:41   ` Dan Williams
2021-10-28  1:41     ` [dm-devel] " Dan Williams
2021-10-28  1:41     ` Dan Williams
2021-10-28  1:41     ` Dan Williams
2021-11-01 16:21     ` Mike Snitzer
2021-11-01 16:21       ` [dm-devel] " Mike Snitzer
2021-11-01 16:21       ` Mike Snitzer
2021-11-01 16:21       ` Mike Snitzer
2021-10-18  4:40 ` [PATCH 11/11] dax: move bdev_dax_pgoff to fs/dax.c Christoph Hellwig
2021-10-18  4:40   ` [dm-devel] " Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-18  4:40   ` Christoph Hellwig
2021-10-28  1:44   ` Dan Williams
2021-10-28  1:44     ` [dm-devel] " Dan Williams
2021-10-28  1:44     ` Dan Williams
2021-10-28  1:44     ` Dan Williams
2021-10-27 20:46 ` futher decouple DAX from block devices Dan Williams
2021-10-27 20:46   ` [dm-devel] " Dan Williams
2021-10-27 20:46   ` Dan Williams
2021-10-27 20:46   ` Dan Williams
2021-10-28 23:51   ` Stephen Rothwell
2021-10-28 23:51     ` [dm-devel] " Stephen Rothwell
2021-10-28 23:51     ` Stephen Rothwell
2021-10-28 23:51     ` Stephen Rothwell
2021-10-29 15:42     ` Dan Williams
2021-10-29 15:42       ` [dm-devel] " Dan Williams
2021-10-29 15:42       ` Dan Williams
2021-10-29 15:42       ` Dan Williams
2021-10-29 15:55       ` Darrick J. Wong
2021-10-29 15:55         ` [dm-devel] " Darrick J. Wong
2021-10-29 15:55         ` Darrick J. Wong
2021-10-29 16:16         ` Dan Williams
2021-10-29 16:16           ` Dan Williams
2021-10-29 16:16           ` [dm-devel] " Dan Williams
2021-10-29 16:16           ` Dan Williams
2021-11-03 17:59 ` Eric Sandeen
2021-11-03 17:59   ` [dm-devel] " Eric Sandeen
2021-11-03 17:59   ` Eric Sandeen
2021-11-04  8:17   ` Christoph Hellwig
2021-11-04  8:17     ` [dm-devel] " Christoph Hellwig
2021-11-04  8:17     ` Christoph Hellwig
2021-11-04  8:17     ` Christoph Hellwig
2021-11-04 17:34     ` Darrick J. Wong
2021-11-04 17:34       ` [dm-devel] " Darrick J. Wong
2021-11-04 17:34       ` Darrick J. Wong
2021-11-04 17:35       ` Christoph Hellwig
2021-11-04 17:35         ` [dm-devel] " Christoph Hellwig
2021-11-04 17:35         ` Christoph Hellwig
2021-11-04 17:35         ` Christoph Hellwig
2021-11-04 18:10         ` Dan Williams
2021-11-04 18:10           ` Dan Williams
2021-11-04 18:10           ` Dan Williams
2021-11-04 18:10           ` [dm-devel] " Dan Williams
2021-11-04 19:04           ` Darrick J. Wong
2021-11-04 19:04             ` [dm-devel] " Darrick J. Wong
2021-11-04 19:04             ` Darrick J. Wong
2021-11-05  3:09             ` Theodore Ts'o
2021-11-05  3:09               ` Theodore Ts'o
2021-11-05  3:09               ` [dm-devel] " Theodore Ts'o
2021-11-05  3:09               ` Theodore Ts'o
2021-11-05  3:30               ` Matthew Wilcox
2021-11-05  3:30                 ` Matthew Wilcox
2021-11-05  3:30                 ` Matthew Wilcox
2021-11-05  3:30                 ` [dm-devel] " Matthew Wilcox

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=YYATJ+oDT15TD9Np@redhat.com \
    --to=snitzer@redhat.com \
    --cc=dan.j.williams@intel.com \
    --cc=dm-devel@redhat.com \
    --cc=hch@lst.de \
    --cc=ira.weiny@intel.com \
    --cc=linux-erofs@lists.ozlabs.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=nvdimm@lists.linux.dev \
    --cc=virtualization@lists.linux-foundation.org \
    /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.