All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Williams <dan.j.williams@intel.com>
To: Christoph Hellwig <hch@lst.de>
Cc: Mike Snitzer <snitzer@redhat.com>,
	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 14/29] fsdax: simplify the pgoff calculation
Date: Tue, 23 Nov 2021 11:44:59 -0800	[thread overview]
Message-ID: <CAPcyv4gVjR05Go=WpK9k-FYO53o+X9PZz2nFL9gniz85nCXu4w@mail.gmail.com> (raw)
In-Reply-To: <20211109083309.584081-15-hch@lst.de>

On Tue, Nov 9, 2021 at 12:33 AM Christoph Hellwig <hch@lst.de> wrote:
>
> Replace the two steps of dax_iomap_sector and bdev_dax_pgoff with a
> single dax_iomap_pgoff helper that avoids lots of cumbersome sector
> conversions.

Looks good,

Reviewed-by: Dan Williams <dan.j.williams@intel.com>

>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  drivers/dax/super.c | 14 --------------
>  fs/dax.c            | 35 ++++++++++-------------------------
>  include/linux/dax.h |  1 -
>  3 files changed, 10 insertions(+), 40 deletions(-)
>
> diff --git a/drivers/dax/super.c b/drivers/dax/super.c
> index 803942586d1b6..c0910687fbcb2 100644
> --- a/drivers/dax/super.c
> +++ b/drivers/dax/super.c
> @@ -67,20 +67,6 @@ void dax_remove_host(struct gendisk *disk)
>  }
>  EXPORT_SYMBOL_GPL(dax_remove_host);
>
> -int bdev_dax_pgoff(struct block_device *bdev, sector_t sector, size_t size,
> -               pgoff_t *pgoff)
> -{
> -       sector_t start_sect = bdev ? get_start_sect(bdev) : 0;
> -       phys_addr_t phys_off = (start_sect + sector) * 512;
> -
> -       if (pgoff)
> -               *pgoff = PHYS_PFN(phys_off);
> -       if (phys_off % PAGE_SIZE || size % PAGE_SIZE)
> -               return -EINVAL;
> -       return 0;
> -}
> -EXPORT_SYMBOL(bdev_dax_pgoff);
> -
>  /**
>   * dax_get_by_host() - temporary lookup mechanism for filesystem-dax
>   * @bdev: block device to find a dax_device for
> diff --git a/fs/dax.c b/fs/dax.c
> index e51b4129d1b65..5364549d67a48 100644
> --- a/fs/dax.c
> +++ b/fs/dax.c
> @@ -709,23 +709,22 @@ int dax_invalidate_mapping_entry_sync(struct address_space *mapping,
>         return __dax_invalidate_entry(mapping, index, false);
>  }
>
> -static sector_t dax_iomap_sector(const struct iomap *iomap, loff_t pos)
> +static pgoff_t dax_iomap_pgoff(const struct iomap *iomap, loff_t pos)
>  {
> -       return (iomap->addr + (pos & PAGE_MASK) - iomap->offset) >> 9;
> +       phys_addr_t paddr = iomap->addr + (pos & PAGE_MASK) - iomap->offset;
> +
> +       if (iomap->bdev)
> +               paddr += (get_start_sect(iomap->bdev) << SECTOR_SHIFT);
> +       return PHYS_PFN(paddr);
>  }
>
>  static int copy_cow_page_dax(struct vm_fault *vmf, const struct iomap_iter *iter)
>  {
> -       sector_t sector = dax_iomap_sector(&iter->iomap, iter->pos);
> +       pgoff_t pgoff = dax_iomap_pgoff(&iter->iomap, iter->pos);
>         void *vto, *kaddr;
> -       pgoff_t pgoff;
>         long rc;
>         int id;
>
> -       rc = bdev_dax_pgoff(iter->iomap.bdev, sector, PAGE_SIZE, &pgoff);
> -       if (rc)
> -               return rc;
> -
>         id = dax_read_lock();
>         rc = dax_direct_access(iter->iomap.dax_dev, pgoff, 1, &kaddr, NULL);
>         if (rc < 0) {
> @@ -1013,14 +1012,10 @@ EXPORT_SYMBOL_GPL(dax_writeback_mapping_range);
>  static int dax_iomap_pfn(const struct iomap *iomap, loff_t pos, size_t size,
>                          pfn_t *pfnp)
>  {
> -       const sector_t sector = dax_iomap_sector(iomap, pos);
> -       pgoff_t pgoff;
> +       pgoff_t pgoff = dax_iomap_pgoff(iomap, pos);
>         int id, rc;
>         long length;
>
> -       rc = bdev_dax_pgoff(iomap->bdev, sector, size, &pgoff);
> -       if (rc)
> -               return rc;
>         id = dax_read_lock();
>         length = dax_direct_access(iomap->dax_dev, pgoff, PHYS_PFN(size),
>                                    NULL, pfnp);
> @@ -1129,7 +1124,7 @@ static vm_fault_t dax_pmd_load_hole(struct xa_state *xas, struct vm_fault *vmf,
>  s64 dax_iomap_zero(loff_t pos, u64 length, struct iomap *iomap)
>  {
>         sector_t sector = iomap_sector(iomap, pos & PAGE_MASK);
> -       pgoff_t pgoff;
> +       pgoff_t pgoff = dax_iomap_pgoff(iomap, pos);
>         long rc, id;
>         void *kaddr;
>         bool page_aligned = false;
> @@ -1140,10 +1135,6 @@ s64 dax_iomap_zero(loff_t pos, u64 length, struct iomap *iomap)
>             (size == PAGE_SIZE))
>                 page_aligned = true;
>
> -       rc = bdev_dax_pgoff(iomap->bdev, sector, PAGE_SIZE, &pgoff);
> -       if (rc)
> -               return rc;
> -
>         id = dax_read_lock();
>
>         if (page_aligned)
> @@ -1169,7 +1160,6 @@ static loff_t dax_iomap_iter(const struct iomap_iter *iomi,
>         const struct iomap *iomap = &iomi->iomap;
>         loff_t length = iomap_length(iomi);
>         loff_t pos = iomi->pos;
> -       struct block_device *bdev = iomap->bdev;
>         struct dax_device *dax_dev = iomap->dax_dev;
>         loff_t end = pos + length, done = 0;
>         ssize_t ret = 0;
> @@ -1203,9 +1193,8 @@ static loff_t dax_iomap_iter(const struct iomap_iter *iomi,
>         while (pos < end) {
>                 unsigned offset = pos & (PAGE_SIZE - 1);
>                 const size_t size = ALIGN(length + offset, PAGE_SIZE);
> -               const sector_t sector = dax_iomap_sector(iomap, pos);
> +               pgoff_t pgoff = dax_iomap_pgoff(iomap, pos);
>                 ssize_t map_len;
> -               pgoff_t pgoff;
>                 void *kaddr;
>
>                 if (fatal_signal_pending(current)) {
> @@ -1213,10 +1202,6 @@ static loff_t dax_iomap_iter(const struct iomap_iter *iomi,
>                         break;
>                 }
>
> -               ret = bdev_dax_pgoff(bdev, sector, size, &pgoff);
> -               if (ret)
> -                       break;
> -
>                 map_len = dax_direct_access(dax_dev, pgoff, PHYS_PFN(size),
>                                 &kaddr, NULL);
>                 if (map_len < 0) {
> diff --git a/include/linux/dax.h b/include/linux/dax.h
> index 439c3c70e347b..324363b798ecd 100644
> --- a/include/linux/dax.h
> +++ b/include/linux/dax.h
> @@ -107,7 +107,6 @@ static inline bool daxdev_mapping_supported(struct vm_area_struct *vma,
>  #endif
>
>  struct writeback_control;
> -int bdev_dax_pgoff(struct block_device *, sector_t, size_t, pgoff_t *pgoff);
>  #if IS_ENABLED(CONFIG_FS_DAX)
>  int dax_add_host(struct dax_device *dax_dev, struct gendisk *disk);
>  void dax_remove_host(struct gendisk *disk);
> --
> 2.30.2
>

WARNING: multiple messages have this Message-ID (diff)
From: Dan Williams <dan.j.williams@intel.com>
To: Christoph Hellwig <hch@lst.de>
Cc: Linux NVDIMM <nvdimm@lists.linux.dev>,
	Mike Snitzer <snitzer@redhat.com>,
	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>
Subject: Re: [PATCH 14/29] fsdax: simplify the pgoff calculation
Date: Tue, 23 Nov 2021 11:44:59 -0800	[thread overview]
Message-ID: <CAPcyv4gVjR05Go=WpK9k-FYO53o+X9PZz2nFL9gniz85nCXu4w@mail.gmail.com> (raw)
In-Reply-To: <20211109083309.584081-15-hch@lst.de>

On Tue, Nov 9, 2021 at 12:33 AM Christoph Hellwig <hch@lst.de> wrote:
>
> Replace the two steps of dax_iomap_sector and bdev_dax_pgoff with a
> single dax_iomap_pgoff helper that avoids lots of cumbersome sector
> conversions.

Looks good,

Reviewed-by: Dan Williams <dan.j.williams@intel.com>

>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  drivers/dax/super.c | 14 --------------
>  fs/dax.c            | 35 ++++++++++-------------------------
>  include/linux/dax.h |  1 -
>  3 files changed, 10 insertions(+), 40 deletions(-)
>
> diff --git a/drivers/dax/super.c b/drivers/dax/super.c
> index 803942586d1b6..c0910687fbcb2 100644
> --- a/drivers/dax/super.c
> +++ b/drivers/dax/super.c
> @@ -67,20 +67,6 @@ void dax_remove_host(struct gendisk *disk)
>  }
>  EXPORT_SYMBOL_GPL(dax_remove_host);
>
> -int bdev_dax_pgoff(struct block_device *bdev, sector_t sector, size_t size,
> -               pgoff_t *pgoff)
> -{
> -       sector_t start_sect = bdev ? get_start_sect(bdev) : 0;
> -       phys_addr_t phys_off = (start_sect + sector) * 512;
> -
> -       if (pgoff)
> -               *pgoff = PHYS_PFN(phys_off);
> -       if (phys_off % PAGE_SIZE || size % PAGE_SIZE)
> -               return -EINVAL;
> -       return 0;
> -}
> -EXPORT_SYMBOL(bdev_dax_pgoff);
> -
>  /**
>   * dax_get_by_host() - temporary lookup mechanism for filesystem-dax
>   * @bdev: block device to find a dax_device for
> diff --git a/fs/dax.c b/fs/dax.c
> index e51b4129d1b65..5364549d67a48 100644
> --- a/fs/dax.c
> +++ b/fs/dax.c
> @@ -709,23 +709,22 @@ int dax_invalidate_mapping_entry_sync(struct address_space *mapping,
>         return __dax_invalidate_entry(mapping, index, false);
>  }
>
> -static sector_t dax_iomap_sector(const struct iomap *iomap, loff_t pos)
> +static pgoff_t dax_iomap_pgoff(const struct iomap *iomap, loff_t pos)
>  {
> -       return (iomap->addr + (pos & PAGE_MASK) - iomap->offset) >> 9;
> +       phys_addr_t paddr = iomap->addr + (pos & PAGE_MASK) - iomap->offset;
> +
> +       if (iomap->bdev)
> +               paddr += (get_start_sect(iomap->bdev) << SECTOR_SHIFT);
> +       return PHYS_PFN(paddr);
>  }
>
>  static int copy_cow_page_dax(struct vm_fault *vmf, const struct iomap_iter *iter)
>  {
> -       sector_t sector = dax_iomap_sector(&iter->iomap, iter->pos);
> +       pgoff_t pgoff = dax_iomap_pgoff(&iter->iomap, iter->pos);
>         void *vto, *kaddr;
> -       pgoff_t pgoff;
>         long rc;
>         int id;
>
> -       rc = bdev_dax_pgoff(iter->iomap.bdev, sector, PAGE_SIZE, &pgoff);
> -       if (rc)
> -               return rc;
> -
>         id = dax_read_lock();
>         rc = dax_direct_access(iter->iomap.dax_dev, pgoff, 1, &kaddr, NULL);
>         if (rc < 0) {
> @@ -1013,14 +1012,10 @@ EXPORT_SYMBOL_GPL(dax_writeback_mapping_range);
>  static int dax_iomap_pfn(const struct iomap *iomap, loff_t pos, size_t size,
>                          pfn_t *pfnp)
>  {
> -       const sector_t sector = dax_iomap_sector(iomap, pos);
> -       pgoff_t pgoff;
> +       pgoff_t pgoff = dax_iomap_pgoff(iomap, pos);
>         int id, rc;
>         long length;
>
> -       rc = bdev_dax_pgoff(iomap->bdev, sector, size, &pgoff);
> -       if (rc)
> -               return rc;
>         id = dax_read_lock();
>         length = dax_direct_access(iomap->dax_dev, pgoff, PHYS_PFN(size),
>                                    NULL, pfnp);
> @@ -1129,7 +1124,7 @@ static vm_fault_t dax_pmd_load_hole(struct xa_state *xas, struct vm_fault *vmf,
>  s64 dax_iomap_zero(loff_t pos, u64 length, struct iomap *iomap)
>  {
>         sector_t sector = iomap_sector(iomap, pos & PAGE_MASK);
> -       pgoff_t pgoff;
> +       pgoff_t pgoff = dax_iomap_pgoff(iomap, pos);
>         long rc, id;
>         void *kaddr;
>         bool page_aligned = false;
> @@ -1140,10 +1135,6 @@ s64 dax_iomap_zero(loff_t pos, u64 length, struct iomap *iomap)
>             (size == PAGE_SIZE))
>                 page_aligned = true;
>
> -       rc = bdev_dax_pgoff(iomap->bdev, sector, PAGE_SIZE, &pgoff);
> -       if (rc)
> -               return rc;
> -
>         id = dax_read_lock();
>
>         if (page_aligned)
> @@ -1169,7 +1160,6 @@ static loff_t dax_iomap_iter(const struct iomap_iter *iomi,
>         const struct iomap *iomap = &iomi->iomap;
>         loff_t length = iomap_length(iomi);
>         loff_t pos = iomi->pos;
> -       struct block_device *bdev = iomap->bdev;
>         struct dax_device *dax_dev = iomap->dax_dev;
>         loff_t end = pos + length, done = 0;
>         ssize_t ret = 0;
> @@ -1203,9 +1193,8 @@ static loff_t dax_iomap_iter(const struct iomap_iter *iomi,
>         while (pos < end) {
>                 unsigned offset = pos & (PAGE_SIZE - 1);
>                 const size_t size = ALIGN(length + offset, PAGE_SIZE);
> -               const sector_t sector = dax_iomap_sector(iomap, pos);
> +               pgoff_t pgoff = dax_iomap_pgoff(iomap, pos);
>                 ssize_t map_len;
> -               pgoff_t pgoff;
>                 void *kaddr;
>
>                 if (fatal_signal_pending(current)) {
> @@ -1213,10 +1202,6 @@ static loff_t dax_iomap_iter(const struct iomap_iter *iomi,
>                         break;
>                 }
>
> -               ret = bdev_dax_pgoff(bdev, sector, size, &pgoff);
> -               if (ret)
> -                       break;
> -
>                 map_len = dax_direct_access(dax_dev, pgoff, PHYS_PFN(size),
>                                 &kaddr, NULL);
>                 if (map_len < 0) {
> diff --git a/include/linux/dax.h b/include/linux/dax.h
> index 439c3c70e347b..324363b798ecd 100644
> --- a/include/linux/dax.h
> +++ b/include/linux/dax.h
> @@ -107,7 +107,6 @@ static inline bool daxdev_mapping_supported(struct vm_area_struct *vma,
>  #endif
>
>  struct writeback_control;
> -int bdev_dax_pgoff(struct block_device *, sector_t, size_t, pgoff_t *pgoff);
>  #if IS_ENABLED(CONFIG_FS_DAX)
>  int dax_add_host(struct dax_device *dax_dev, struct gendisk *disk);
>  void dax_remove_host(struct gendisk *disk);
> --
> 2.30.2
>
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

WARNING: multiple messages have this Message-ID (diff)
From: Dan Williams <dan.j.williams@intel.com>
To: Christoph Hellwig <hch@lst.de>
Cc: Linux NVDIMM <nvdimm@lists.linux.dev>,
	Mike Snitzer <snitzer@redhat.com>,
	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>
Subject: Re: [PATCH 14/29] fsdax: simplify the pgoff calculation
Date: Tue, 23 Nov 2021 11:44:59 -0800	[thread overview]
Message-ID: <CAPcyv4gVjR05Go=WpK9k-FYO53o+X9PZz2nFL9gniz85nCXu4w@mail.gmail.com> (raw)
In-Reply-To: <20211109083309.584081-15-hch@lst.de>

On Tue, Nov 9, 2021 at 12:33 AM Christoph Hellwig <hch@lst.de> wrote:
>
> Replace the two steps of dax_iomap_sector and bdev_dax_pgoff with a
> single dax_iomap_pgoff helper that avoids lots of cumbersome sector
> conversions.

Looks good,

Reviewed-by: Dan Williams <dan.j.williams@intel.com>

>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  drivers/dax/super.c | 14 --------------
>  fs/dax.c            | 35 ++++++++++-------------------------
>  include/linux/dax.h |  1 -
>  3 files changed, 10 insertions(+), 40 deletions(-)
>
> diff --git a/drivers/dax/super.c b/drivers/dax/super.c
> index 803942586d1b6..c0910687fbcb2 100644
> --- a/drivers/dax/super.c
> +++ b/drivers/dax/super.c
> @@ -67,20 +67,6 @@ void dax_remove_host(struct gendisk *disk)
>  }
>  EXPORT_SYMBOL_GPL(dax_remove_host);
>
> -int bdev_dax_pgoff(struct block_device *bdev, sector_t sector, size_t size,
> -               pgoff_t *pgoff)
> -{
> -       sector_t start_sect = bdev ? get_start_sect(bdev) : 0;
> -       phys_addr_t phys_off = (start_sect + sector) * 512;
> -
> -       if (pgoff)
> -               *pgoff = PHYS_PFN(phys_off);
> -       if (phys_off % PAGE_SIZE || size % PAGE_SIZE)
> -               return -EINVAL;
> -       return 0;
> -}
> -EXPORT_SYMBOL(bdev_dax_pgoff);
> -
>  /**
>   * dax_get_by_host() - temporary lookup mechanism for filesystem-dax
>   * @bdev: block device to find a dax_device for
> diff --git a/fs/dax.c b/fs/dax.c
> index e51b4129d1b65..5364549d67a48 100644
> --- a/fs/dax.c
> +++ b/fs/dax.c
> @@ -709,23 +709,22 @@ int dax_invalidate_mapping_entry_sync(struct address_space *mapping,
>         return __dax_invalidate_entry(mapping, index, false);
>  }
>
> -static sector_t dax_iomap_sector(const struct iomap *iomap, loff_t pos)
> +static pgoff_t dax_iomap_pgoff(const struct iomap *iomap, loff_t pos)
>  {
> -       return (iomap->addr + (pos & PAGE_MASK) - iomap->offset) >> 9;
> +       phys_addr_t paddr = iomap->addr + (pos & PAGE_MASK) - iomap->offset;
> +
> +       if (iomap->bdev)
> +               paddr += (get_start_sect(iomap->bdev) << SECTOR_SHIFT);
> +       return PHYS_PFN(paddr);
>  }
>
>  static int copy_cow_page_dax(struct vm_fault *vmf, const struct iomap_iter *iter)
>  {
> -       sector_t sector = dax_iomap_sector(&iter->iomap, iter->pos);
> +       pgoff_t pgoff = dax_iomap_pgoff(&iter->iomap, iter->pos);
>         void *vto, *kaddr;
> -       pgoff_t pgoff;
>         long rc;
>         int id;
>
> -       rc = bdev_dax_pgoff(iter->iomap.bdev, sector, PAGE_SIZE, &pgoff);
> -       if (rc)
> -               return rc;
> -
>         id = dax_read_lock();
>         rc = dax_direct_access(iter->iomap.dax_dev, pgoff, 1, &kaddr, NULL);
>         if (rc < 0) {
> @@ -1013,14 +1012,10 @@ EXPORT_SYMBOL_GPL(dax_writeback_mapping_range);
>  static int dax_iomap_pfn(const struct iomap *iomap, loff_t pos, size_t size,
>                          pfn_t *pfnp)
>  {
> -       const sector_t sector = dax_iomap_sector(iomap, pos);
> -       pgoff_t pgoff;
> +       pgoff_t pgoff = dax_iomap_pgoff(iomap, pos);
>         int id, rc;
>         long length;
>
> -       rc = bdev_dax_pgoff(iomap->bdev, sector, size, &pgoff);
> -       if (rc)
> -               return rc;
>         id = dax_read_lock();
>         length = dax_direct_access(iomap->dax_dev, pgoff, PHYS_PFN(size),
>                                    NULL, pfnp);
> @@ -1129,7 +1124,7 @@ static vm_fault_t dax_pmd_load_hole(struct xa_state *xas, struct vm_fault *vmf,
>  s64 dax_iomap_zero(loff_t pos, u64 length, struct iomap *iomap)
>  {
>         sector_t sector = iomap_sector(iomap, pos & PAGE_MASK);
> -       pgoff_t pgoff;
> +       pgoff_t pgoff = dax_iomap_pgoff(iomap, pos);
>         long rc, id;
>         void *kaddr;
>         bool page_aligned = false;
> @@ -1140,10 +1135,6 @@ s64 dax_iomap_zero(loff_t pos, u64 length, struct iomap *iomap)
>             (size == PAGE_SIZE))
>                 page_aligned = true;
>
> -       rc = bdev_dax_pgoff(iomap->bdev, sector, PAGE_SIZE, &pgoff);
> -       if (rc)
> -               return rc;
> -
>         id = dax_read_lock();
>
>         if (page_aligned)
> @@ -1169,7 +1160,6 @@ static loff_t dax_iomap_iter(const struct iomap_iter *iomi,
>         const struct iomap *iomap = &iomi->iomap;
>         loff_t length = iomap_length(iomi);
>         loff_t pos = iomi->pos;
> -       struct block_device *bdev = iomap->bdev;
>         struct dax_device *dax_dev = iomap->dax_dev;
>         loff_t end = pos + length, done = 0;
>         ssize_t ret = 0;
> @@ -1203,9 +1193,8 @@ static loff_t dax_iomap_iter(const struct iomap_iter *iomi,
>         while (pos < end) {
>                 unsigned offset = pos & (PAGE_SIZE - 1);
>                 const size_t size = ALIGN(length + offset, PAGE_SIZE);
> -               const sector_t sector = dax_iomap_sector(iomap, pos);
> +               pgoff_t pgoff = dax_iomap_pgoff(iomap, pos);
>                 ssize_t map_len;
> -               pgoff_t pgoff;
>                 void *kaddr;
>
>                 if (fatal_signal_pending(current)) {
> @@ -1213,10 +1202,6 @@ static loff_t dax_iomap_iter(const struct iomap_iter *iomi,
>                         break;
>                 }
>
> -               ret = bdev_dax_pgoff(bdev, sector, size, &pgoff);
> -               if (ret)
> -                       break;
> -
>                 map_len = dax_direct_access(dax_dev, pgoff, PHYS_PFN(size),
>                                 &kaddr, NULL);
>                 if (map_len < 0) {
> diff --git a/include/linux/dax.h b/include/linux/dax.h
> index 439c3c70e347b..324363b798ecd 100644
> --- a/include/linux/dax.h
> +++ b/include/linux/dax.h
> @@ -107,7 +107,6 @@ static inline bool daxdev_mapping_supported(struct vm_area_struct *vma,
>  #endif
>
>  struct writeback_control;
> -int bdev_dax_pgoff(struct block_device *, sector_t, size_t, pgoff_t *pgoff);
>  #if IS_ENABLED(CONFIG_FS_DAX)
>  int dax_add_host(struct dax_device *dax_dev, struct gendisk *disk);
>  void dax_remove_host(struct gendisk *disk);
> --
> 2.30.2
>

WARNING: multiple messages have this Message-ID (diff)
From: Dan Williams <dan.j.williams@intel.com>
To: Christoph Hellwig <hch@lst.de>
Cc: Linux NVDIMM <nvdimm@lists.linux.dev>,
	Mike Snitzer <snitzer@redhat.com>,
	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>
Subject: Re: [dm-devel] [PATCH 14/29] fsdax: simplify the pgoff calculation
Date: Tue, 23 Nov 2021 11:44:59 -0800	[thread overview]
Message-ID: <CAPcyv4gVjR05Go=WpK9k-FYO53o+X9PZz2nFL9gniz85nCXu4w@mail.gmail.com> (raw)
In-Reply-To: <20211109083309.584081-15-hch@lst.de>

On Tue, Nov 9, 2021 at 12:33 AM Christoph Hellwig <hch@lst.de> wrote:
>
> Replace the two steps of dax_iomap_sector and bdev_dax_pgoff with a
> single dax_iomap_pgoff helper that avoids lots of cumbersome sector
> conversions.

Looks good,

Reviewed-by: Dan Williams <dan.j.williams@intel.com>

>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
>  drivers/dax/super.c | 14 --------------
>  fs/dax.c            | 35 ++++++++++-------------------------
>  include/linux/dax.h |  1 -
>  3 files changed, 10 insertions(+), 40 deletions(-)
>
> diff --git a/drivers/dax/super.c b/drivers/dax/super.c
> index 803942586d1b6..c0910687fbcb2 100644
> --- a/drivers/dax/super.c
> +++ b/drivers/dax/super.c
> @@ -67,20 +67,6 @@ void dax_remove_host(struct gendisk *disk)
>  }
>  EXPORT_SYMBOL_GPL(dax_remove_host);
>
> -int bdev_dax_pgoff(struct block_device *bdev, sector_t sector, size_t size,
> -               pgoff_t *pgoff)
> -{
> -       sector_t start_sect = bdev ? get_start_sect(bdev) : 0;
> -       phys_addr_t phys_off = (start_sect + sector) * 512;
> -
> -       if (pgoff)
> -               *pgoff = PHYS_PFN(phys_off);
> -       if (phys_off % PAGE_SIZE || size % PAGE_SIZE)
> -               return -EINVAL;
> -       return 0;
> -}
> -EXPORT_SYMBOL(bdev_dax_pgoff);
> -
>  /**
>   * dax_get_by_host() - temporary lookup mechanism for filesystem-dax
>   * @bdev: block device to find a dax_device for
> diff --git a/fs/dax.c b/fs/dax.c
> index e51b4129d1b65..5364549d67a48 100644
> --- a/fs/dax.c
> +++ b/fs/dax.c
> @@ -709,23 +709,22 @@ int dax_invalidate_mapping_entry_sync(struct address_space *mapping,
>         return __dax_invalidate_entry(mapping, index, false);
>  }
>
> -static sector_t dax_iomap_sector(const struct iomap *iomap, loff_t pos)
> +static pgoff_t dax_iomap_pgoff(const struct iomap *iomap, loff_t pos)
>  {
> -       return (iomap->addr + (pos & PAGE_MASK) - iomap->offset) >> 9;
> +       phys_addr_t paddr = iomap->addr + (pos & PAGE_MASK) - iomap->offset;
> +
> +       if (iomap->bdev)
> +               paddr += (get_start_sect(iomap->bdev) << SECTOR_SHIFT);
> +       return PHYS_PFN(paddr);
>  }
>
>  static int copy_cow_page_dax(struct vm_fault *vmf, const struct iomap_iter *iter)
>  {
> -       sector_t sector = dax_iomap_sector(&iter->iomap, iter->pos);
> +       pgoff_t pgoff = dax_iomap_pgoff(&iter->iomap, iter->pos);
>         void *vto, *kaddr;
> -       pgoff_t pgoff;
>         long rc;
>         int id;
>
> -       rc = bdev_dax_pgoff(iter->iomap.bdev, sector, PAGE_SIZE, &pgoff);
> -       if (rc)
> -               return rc;
> -
>         id = dax_read_lock();
>         rc = dax_direct_access(iter->iomap.dax_dev, pgoff, 1, &kaddr, NULL);
>         if (rc < 0) {
> @@ -1013,14 +1012,10 @@ EXPORT_SYMBOL_GPL(dax_writeback_mapping_range);
>  static int dax_iomap_pfn(const struct iomap *iomap, loff_t pos, size_t size,
>                          pfn_t *pfnp)
>  {
> -       const sector_t sector = dax_iomap_sector(iomap, pos);
> -       pgoff_t pgoff;
> +       pgoff_t pgoff = dax_iomap_pgoff(iomap, pos);
>         int id, rc;
>         long length;
>
> -       rc = bdev_dax_pgoff(iomap->bdev, sector, size, &pgoff);
> -       if (rc)
> -               return rc;
>         id = dax_read_lock();
>         length = dax_direct_access(iomap->dax_dev, pgoff, PHYS_PFN(size),
>                                    NULL, pfnp);
> @@ -1129,7 +1124,7 @@ static vm_fault_t dax_pmd_load_hole(struct xa_state *xas, struct vm_fault *vmf,
>  s64 dax_iomap_zero(loff_t pos, u64 length, struct iomap *iomap)
>  {
>         sector_t sector = iomap_sector(iomap, pos & PAGE_MASK);
> -       pgoff_t pgoff;
> +       pgoff_t pgoff = dax_iomap_pgoff(iomap, pos);
>         long rc, id;
>         void *kaddr;
>         bool page_aligned = false;
> @@ -1140,10 +1135,6 @@ s64 dax_iomap_zero(loff_t pos, u64 length, struct iomap *iomap)
>             (size == PAGE_SIZE))
>                 page_aligned = true;
>
> -       rc = bdev_dax_pgoff(iomap->bdev, sector, PAGE_SIZE, &pgoff);
> -       if (rc)
> -               return rc;
> -
>         id = dax_read_lock();
>
>         if (page_aligned)
> @@ -1169,7 +1160,6 @@ static loff_t dax_iomap_iter(const struct iomap_iter *iomi,
>         const struct iomap *iomap = &iomi->iomap;
>         loff_t length = iomap_length(iomi);
>         loff_t pos = iomi->pos;
> -       struct block_device *bdev = iomap->bdev;
>         struct dax_device *dax_dev = iomap->dax_dev;
>         loff_t end = pos + length, done = 0;
>         ssize_t ret = 0;
> @@ -1203,9 +1193,8 @@ static loff_t dax_iomap_iter(const struct iomap_iter *iomi,
>         while (pos < end) {
>                 unsigned offset = pos & (PAGE_SIZE - 1);
>                 const size_t size = ALIGN(length + offset, PAGE_SIZE);
> -               const sector_t sector = dax_iomap_sector(iomap, pos);
> +               pgoff_t pgoff = dax_iomap_pgoff(iomap, pos);
>                 ssize_t map_len;
> -               pgoff_t pgoff;
>                 void *kaddr;
>
>                 if (fatal_signal_pending(current)) {
> @@ -1213,10 +1202,6 @@ static loff_t dax_iomap_iter(const struct iomap_iter *iomi,
>                         break;
>                 }
>
> -               ret = bdev_dax_pgoff(bdev, sector, size, &pgoff);
> -               if (ret)
> -                       break;
> -
>                 map_len = dax_direct_access(dax_dev, pgoff, PHYS_PFN(size),
>                                 &kaddr, NULL);
>                 if (map_len < 0) {
> diff --git a/include/linux/dax.h b/include/linux/dax.h
> index 439c3c70e347b..324363b798ecd 100644
> --- a/include/linux/dax.h
> +++ b/include/linux/dax.h
> @@ -107,7 +107,6 @@ static inline bool daxdev_mapping_supported(struct vm_area_struct *vma,
>  #endif
>
>  struct writeback_control;
> -int bdev_dax_pgoff(struct block_device *, sector_t, size_t, pgoff_t *pgoff);
>  #if IS_ENABLED(CONFIG_FS_DAX)
>  int dax_add_host(struct dax_device *dax_dev, struct gendisk *disk);
>  void dax_remove_host(struct gendisk *disk);
> --
> 2.30.2
>

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


  reply	other threads:[~2021-11-23 19:45 UTC|newest]

Thread overview: 382+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-09  8:32 decouple DAX from block devices Christoph Hellwig
2021-11-09  8:32 ` [dm-devel] " Christoph Hellwig
2021-11-09  8:32 ` Christoph Hellwig
2021-11-09  8:32 ` Christoph Hellwig
2021-11-09  8:32 ` [PATCH 01/29] nvdimm/pmem: move dax_attribute_group from dax to pmem Christoph Hellwig
2021-11-09  8:32   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-17 17:44   ` Dan Williams
2021-11-17 17:44     ` Dan Williams
2021-11-17 17:44     ` [dm-devel] " Dan Williams
2021-11-17 17:44     ` Dan Williams
2021-11-19  6:56     ` Christoph Hellwig
2021-11-19  6:56       ` [dm-devel] " Christoph Hellwig
2021-11-19  6:56       ` Christoph Hellwig
2021-11-19  6:56       ` Christoph Hellwig
2021-11-19 17:21       ` Dan Williams
2021-11-19 17:21         ` [dm-devel] " Dan Williams
2021-11-19 17:21         ` Dan Williams
2021-11-19 17:21         ` Dan Williams
2021-11-09  8:32 ` [PATCH 02/29] dm: make the DAX support dependend on CONFIG_FS_DAX Christoph Hellwig
2021-11-09  8:32   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-17 17:23   ` Dan Williams
2021-11-17 17:23     ` [dm-devel] " Dan Williams
2021-11-17 17:23     ` Dan Williams
2021-11-17 17:23     ` Dan Williams
2021-11-19  6:54     ` Christoph Hellwig
2021-11-19  6:54       ` [dm-devel] " Christoph Hellwig
2021-11-19  6:54       ` Christoph Hellwig
2021-11-19  6:54       ` Christoph Hellwig
2021-11-23  2:54       ` Dan Williams
2021-11-23  2:54         ` [dm-devel] " Dan Williams
2021-11-23  2:54         ` Dan Williams
2021-11-23  2:54         ` Dan Williams
2021-11-23  5:56         ` Christoph Hellwig
2021-11-23  5:56           ` [dm-devel] " Christoph Hellwig
2021-11-23  5:56           ` Christoph Hellwig
2021-11-23  5:56           ` Christoph Hellwig
2021-11-09  8:32 ` [PATCH 03/29] dax: remove CONFIG_DAX_DRIVER Christoph Hellwig
2021-11-09  8:32   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-17 17:43   ` Dan Williams
2021-11-17 17:43     ` Dan Williams
2021-11-17 17:43     ` [dm-devel] " Dan Williams
2021-11-17 17:43     ` Dan Williams
2021-11-23  2:54     ` Dan Williams
2021-11-23  2:54       ` [dm-devel] " Dan Williams
2021-11-23  2:54       ` Dan Williams
2021-11-23  2:54       ` Dan Williams
2021-11-09  8:32 ` [PATCH 04/29] dax: simplify the dax_device <-> gendisk association Christoph Hellwig
2021-11-09  8:32   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-23  3:33   ` Dan Williams
2021-11-23  3:33     ` [dm-devel] " Dan Williams
2021-11-23  3:33     ` Dan Williams
2021-11-23  3:33     ` Dan Williams
2021-11-23  5:57     ` Christoph Hellwig
2021-11-23  5:57       ` [dm-devel] " Christoph Hellwig
2021-11-23  5:57       ` Christoph Hellwig
2021-11-23  5:57       ` Christoph Hellwig
2021-11-23 19:33       ` Dan Williams
2021-11-23 19:33         ` [dm-devel] " Dan Williams
2021-11-23 19:33         ` Dan Williams
2021-11-23 19:33         ` Dan Williams
2021-11-09  8:32 ` [PATCH 05/29] dax: remove the pgmap sanity checks in generic_fsdax_supported Christoph Hellwig
2021-11-09  8:32   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-23  3:35   ` Dan Williams
2021-11-23  3:35     ` [dm-devel] " Dan Williams
2021-11-23  3:35     ` Dan Williams
2021-11-23  3:35     ` Dan Williams
2021-11-09  8:32 ` [PATCH 06/29] dax: move the partition alignment check into fs_dax_get_by_bdev Christoph Hellwig
2021-11-09  8:32   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-23  3:41   ` Dan Williams
2021-11-23  3:41     ` [dm-devel] " Dan Williams
2021-11-23  3:41     ` Dan Williams
2021-11-23  3:41     ` Dan Williams
2021-11-23 22:25   ` Darrick J. Wong
2021-11-23 22:25     ` [dm-devel] " Darrick J. Wong
2021-11-23 22:25     ` Darrick J. Wong
2021-11-24  6:36     ` Christoph Hellwig
2021-11-24  6:36       ` [dm-devel] " Christoph Hellwig
2021-11-24  6:36       ` Christoph Hellwig
2021-11-24  6:36       ` Christoph Hellwig
2021-11-09  8:32 ` [PATCH 07/29] xfs: factor out a xfs_setup_dax_always helper Christoph Hellwig
2021-11-09  8:32   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-17 17:31   ` Darrick J. Wong
2021-11-17 17:31     ` [dm-devel] " Darrick J. Wong
2021-11-17 17:31     ` Darrick J. Wong
2021-11-23  3:51   ` Dan Williams
2021-11-23  3:51     ` [dm-devel] " Dan Williams
2021-11-23  3:51     ` Dan Williams
2021-11-23  3:51     ` Dan Williams
2021-11-09  8:32 ` [PATCH 08/29] dax: remove dax_capable Christoph Hellwig
2021-11-09  8:32   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-23  3:58   ` Dan Williams
2021-11-23  3:58     ` [dm-devel] " Dan Williams
2021-11-23  3:58     ` Dan Williams
2021-11-23  3:58     ` Dan Williams
2021-11-23 22:31   ` Darrick J. Wong
2021-11-23 22:31     ` [dm-devel] " Darrick J. Wong
2021-11-23 22:31     ` Darrick J. Wong
2021-11-24  6:37     ` Christoph Hellwig
2021-11-24  6:37       ` [dm-devel] " Christoph Hellwig
2021-11-24  6:37       ` Christoph Hellwig
2021-11-24  6:37       ` Christoph Hellwig
2021-11-09  8:32 ` [PATCH 09/29] dm-linear: add a linear_dax_pgoff helper Christoph Hellwig
2021-11-09  8:32   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-23  3:59   ` Dan Williams
2021-11-23  3:59     ` [dm-devel] " Dan Williams
2021-11-23  3:59     ` Dan Williams
2021-11-23  3:59     ` Dan Williams
2021-11-09  8:32 ` [PATCH 10/29] dm-log-writes: add a log_writes_dax_pgoff helper Christoph Hellwig
2021-11-09  8:32   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-23  4:02   ` Dan Williams
2021-11-23  4:02     ` [dm-devel] " Dan Williams
2021-11-23  4:02     ` Dan Williams
2021-11-23  4:02     ` Dan Williams
2021-11-09  8:32 ` [PATCH 11/29] dm-stripe: add a stripe_dax_pgoff helper Christoph Hellwig
2021-11-09  8:32   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-23  4:16   ` Dan Williams
2021-11-23  4:16     ` [dm-devel] " Dan Williams
2021-11-23  4:16     ` Dan Williams
2021-11-23  4:16     ` Dan Williams
2021-11-09  8:32 ` [PATCH 12/29] fsdax: remove a pointless __force cast in copy_cow_page_dax Christoph Hellwig
2021-11-09  8:32   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-23  4:17   ` Dan Williams
2021-11-23  4:17     ` Dan Williams
2021-11-23  4:17     ` Dan Williams
2021-11-23  4:17     ` [dm-devel] " Dan Williams
2021-11-23 22:33   ` Darrick J. Wong
2021-11-23 22:33     ` [dm-devel] " Darrick J. Wong
2021-11-23 22:33     ` Darrick J. Wong
2021-11-09  8:32 ` [PATCH 13/29] fsdax: use a saner calling convention for copy_cow_page_dax Christoph Hellwig
2021-11-09  8:32   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-23 19:35   ` Dan Williams
2021-11-23 19:35     ` [dm-devel] " Dan Williams
2021-11-23 19:35     ` Dan Williams
2021-11-23 19:35     ` Dan Williams
2021-11-23 22:33   ` Darrick J. Wong
2021-11-23 22:33     ` [dm-devel] " Darrick J. Wong
2021-11-23 22:33     ` Darrick J. Wong
2021-11-09  8:32 ` [PATCH 14/29] fsdax: simplify the pgoff calculation Christoph Hellwig
2021-11-09  8:32   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-23 19:44   ` Dan Williams [this message]
2021-11-23 19:44     ` [dm-devel] " Dan Williams
2021-11-23 19:44     ` Dan Williams
2021-11-23 19:44     ` Dan Williams
2021-11-23 22:36   ` Darrick J. Wong
2021-11-23 22:36     ` [dm-devel] " Darrick J. Wong
2021-11-23 22:36     ` Darrick J. Wong
2021-11-24  6:39     ` Christoph Hellwig
2021-11-24  6:39       ` [dm-devel] " Christoph Hellwig
2021-11-24  6:39       ` Christoph Hellwig
2021-11-24  6:39       ` Christoph Hellwig
2021-11-09  8:32 ` [PATCH 15/29] xfs: add xfs_zero_range and xfs_truncate_page helpers Christoph Hellwig
2021-11-09  8:32   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-23 21:15   ` Dan Williams
2021-11-23 21:15     ` [dm-devel] " Dan Williams
2021-11-23 21:15     ` Dan Williams
2021-11-23 21:15     ` Dan Williams
2021-11-23 22:37   ` Darrick J. Wong
2021-11-23 22:37     ` [dm-devel] " Darrick J. Wong
2021-11-23 22:37     ` Darrick J. Wong
2021-11-09  8:32 ` [PATCH 16/29] fsdax: simplify the offset check in dax_iomap_zero Christoph Hellwig
2021-11-09  8:32   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-23 21:16   ` Dan Williams
2021-11-23 21:16     ` [dm-devel] " Dan Williams
2021-11-23 21:16     ` Dan Williams
2021-11-23 21:16     ` Dan Williams
2021-11-23 22:40   ` Darrick J. Wong
2021-11-23 22:40     ` [dm-devel] " Darrick J. Wong
2021-11-23 22:40     ` Darrick J. Wong
2021-11-09  8:32 ` [PATCH 17/29] fsdax: factor out a dax_memzero helper Christoph Hellwig
2021-11-09  8:32   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-23 21:22   ` Dan Williams
2021-11-23 21:22     ` [dm-devel] " Dan Williams
2021-11-23 21:22     ` Dan Williams
2021-11-23 21:22     ` Dan Williams
2021-11-23 22:44     ` Darrick J. Wong
2021-11-23 22:44       ` [dm-devel] " Darrick J. Wong
2021-11-23 22:44       ` Darrick J. Wong
2021-11-24  6:47     ` Christoph Hellwig
2021-11-24  6:47       ` [dm-devel] " Christoph Hellwig
2021-11-24  6:47       ` Christoph Hellwig
2021-11-24  6:47       ` Christoph Hellwig
2021-11-09  8:32 ` [PATCH 18/29] fsdax: decouple zeroing from the iomap buffered I/O code Christoph Hellwig
2021-11-09  8:32   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-11  8:30   ` kernel test robot
2021-11-23 21:46   ` Dan Williams
2021-11-23 21:46     ` [dm-devel] " Dan Williams
2021-11-23 21:46     ` Dan Williams
2021-11-23 21:46     ` Dan Williams
2021-11-24  6:50     ` Christoph Hellwig
2021-11-24  6:50       ` [dm-devel] " Christoph Hellwig
2021-11-24  6:50       ` Christoph Hellwig
2021-11-24  6:50       ` Christoph Hellwig
2021-11-23 22:53   ` Darrick J. Wong
2021-11-23 22:53     ` [dm-devel] " Darrick J. Wong
2021-11-23 22:53     ` Darrick J. Wong
2021-11-24  6:52     ` Christoph Hellwig
2021-11-24  6:52       ` [dm-devel] " Christoph Hellwig
2021-11-24  6:52       ` Christoph Hellwig
2021-11-24  6:52       ` Christoph Hellwig
2021-11-09  8:32 ` [PATCH 19/29] ext2: cleanup the dax handling in ext2_fill_super Christoph Hellwig
2021-11-09  8:32   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-09  8:32   ` Christoph Hellwig
2021-11-23 21:48   ` Dan Williams
2021-11-23 21:48     ` [dm-devel] " Dan Williams
2021-11-23 21:48     ` Dan Williams
2021-11-23 21:48     ` Dan Williams
2021-11-23 22:54   ` Darrick J. Wong
2021-11-23 22:54     ` [dm-devel] " Darrick J. Wong
2021-11-23 22:54     ` Darrick J. Wong
2021-11-09  8:33 ` [PATCH 20/29] ext4: cleanup the dax handling in ext4_fill_super Christoph Hellwig
2021-11-09  8:33   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:33   ` Christoph Hellwig
2021-11-09  8:33   ` Christoph Hellwig
2021-11-23 21:49   ` Dan Williams
2021-11-23 21:49     ` [dm-devel] " Dan Williams
2021-11-23 21:49     ` Dan Williams
2021-11-23 21:49     ` Dan Williams
2021-11-23 22:54   ` Darrick J. Wong
2021-11-23 22:54     ` [dm-devel] " Darrick J. Wong
2021-11-23 22:54     ` Darrick J. Wong
2021-11-24  6:53     ` Christoph Hellwig
2021-11-24  6:53       ` [dm-devel] " Christoph Hellwig
2021-11-24  6:53       ` Christoph Hellwig
2021-11-24  6:53       ` Christoph Hellwig
2021-11-09  8:33 ` [PATCH 21/29] xfs: move dax device handling into xfs_{alloc,free}_buftarg Christoph Hellwig
2021-11-09  8:33   ` [dm-devel] [PATCH 21/29] xfs: move dax device handling into xfs_{alloc, free}_buftarg Christoph Hellwig
2021-11-09  8:33   ` Christoph Hellwig
2021-11-09  8:33   ` Christoph Hellwig
2021-11-23 22:55   ` [PATCH 21/29] xfs: move dax device handling into xfs_{alloc,free}_buftarg Darrick J. Wong
2021-11-23 22:55     ` [dm-devel] [PATCH 21/29] xfs: move dax device handling into xfs_{alloc, free}_buftarg Darrick J. Wong
2021-11-23 22:55     ` [PATCH 21/29] xfs: move dax device handling into xfs_{alloc,free}_buftarg Darrick J. Wong
2021-11-24  2:40   ` Dan Williams
2021-11-24  2:40     ` [dm-devel] [PATCH 21/29] xfs: move dax device handling into xfs_{alloc, free}_buftarg Dan Williams
2021-11-24  2:40     ` Dan Williams
2021-11-24  2:40     ` Dan Williams
2021-11-24  3:05     ` [PATCH 21/29] xfs: move dax device handling into xfs_{alloc,free}_buftarg Darrick J. Wong
2021-11-24  3:05       ` [dm-devel] [PATCH 21/29] xfs: move dax device handling into xfs_{alloc, free}_buftarg Darrick J. Wong
2021-11-24  3:05       ` [PATCH 21/29] xfs: move dax device handling into xfs_{alloc,free}_buftarg Darrick J. Wong
2021-11-24  6:55     ` Christoph Hellwig
2021-11-24  6:55       ` [dm-devel] [PATCH 21/29] xfs: move dax device handling into xfs_{alloc, free}_buftarg Christoph Hellwig
2021-11-24  6:55       ` [PATCH 21/29] xfs: move dax device handling into xfs_{alloc,free}_buftarg Christoph Hellwig
2021-11-24  6:55       ` Christoph Hellwig
2021-11-09  8:33 ` [PATCH 22/29] iomap: add a IOMAP_DAX flag Christoph Hellwig
2021-11-09  8:33   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:33   ` Christoph Hellwig
2021-11-09  8:33   ` Christoph Hellwig
2021-11-23 23:00   ` Darrick J. Wong
2021-11-23 23:00     ` [dm-devel] " Darrick J. Wong
2021-11-23 23:00     ` Darrick J. Wong
2021-11-24  2:47   ` Dan Williams
2021-11-24  2:47     ` [dm-devel] " Dan Williams
2021-11-24  2:47     ` Dan Williams
2021-11-24  2:47     ` Dan Williams
2021-11-24  7:10     ` Christoph Hellwig
2021-11-24  7:10       ` [dm-devel] " Christoph Hellwig
2021-11-24  7:10       ` Christoph Hellwig
2021-11-24  7:10       ` Christoph Hellwig
2021-11-09  8:33 ` [PATCH 23/29] xfs: use IOMAP_DAX to check for DAX mappings Christoph Hellwig
2021-11-09  8:33   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:33   ` Christoph Hellwig
2021-11-09  8:33   ` Christoph Hellwig
2021-11-23 23:01   ` Darrick J. Wong
2021-11-23 23:01     ` [dm-devel] " Darrick J. Wong
2021-11-23 23:01     ` Darrick J. Wong
2021-11-24  7:14     ` Christoph Hellwig
2021-11-24  7:14       ` [dm-devel] " Christoph Hellwig
2021-11-24  7:14       ` Christoph Hellwig
2021-11-24  7:14       ` Christoph Hellwig
2021-11-24  2:49   ` Dan Williams
2021-11-24  2:49     ` [dm-devel] " Dan Williams
2021-11-24  2:49     ` Dan Williams
2021-11-24  2:49     ` Dan Williams
2021-11-09  8:33 ` [PATCH 24/29] xfs: use xfs_direct_write_iomap_ops for DAX zeroing Christoph Hellwig
2021-11-09  8:33   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:33   ` Christoph Hellwig
2021-11-09  8:33   ` Christoph Hellwig
2021-11-23 23:02   ` Darrick J. Wong
2021-11-23 23:02     ` [dm-devel] " Darrick J. Wong
2021-11-23 23:02     ` Darrick J. Wong
2021-11-24  2:52   ` Dan Williams
2021-11-24  2:52     ` [dm-devel] " Dan Williams
2021-11-24  2:52     ` Dan Williams
2021-11-24  2:52     ` Dan Williams
2021-11-09  8:33 ` [PATCH 25/29] dax: return the partition offset from fs_dax_get_by_bdev Christoph Hellwig
2021-11-09  8:33   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:33   ` Christoph Hellwig
2021-11-09  8:33   ` Christoph Hellwig
2021-11-24  2:56   ` Dan Williams
2021-11-24  2:56     ` [dm-devel] " Dan Williams
2021-11-24  2:56     ` Dan Williams
2021-11-24  2:56     ` Dan Williams
2021-11-24  6:59     ` Christoph Hellwig
2021-11-24  6:59       ` [dm-devel] " Christoph Hellwig
2021-11-24  6:59       ` Christoph Hellwig
2021-11-24  6:59       ` Christoph Hellwig
2021-11-09  8:33 ` [PATCH 26/29] fsdax: shift partition offset handling into the file systems Christoph Hellwig
2021-11-09  8:33   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:33   ` Christoph Hellwig
2021-11-09  8:33   ` Christoph Hellwig
2021-11-23 23:11   ` Darrick J. Wong
2021-11-23 23:11     ` [dm-devel] " Darrick J. Wong
2021-11-23 23:11     ` Darrick J. Wong
2021-11-24  3:21   ` Dan Williams
2021-11-24  3:21     ` [dm-devel] " Dan Williams
2021-11-24  3:21     ` Dan Williams
2021-11-24  3:21     ` Dan Williams
2021-11-24  3:44   ` Gao Xiang
2021-11-24  3:44     ` [dm-devel] " Gao Xiang
2021-11-24  3:44     ` Gao Xiang
2021-11-09  8:33 ` [PATCH 27/29] dax: fix up some of the block device related ifdefs Christoph Hellwig
2021-11-09  8:33   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:33   ` Christoph Hellwig
2021-11-09  8:33   ` Christoph Hellwig
2021-11-23 23:13   ` Darrick J. Wong
2021-11-23 23:13     ` [dm-devel] " Darrick J. Wong
2021-11-23 23:13     ` Darrick J. Wong
2021-11-24  3:47   ` Dan Williams
2021-11-24  3:47     ` [dm-devel] " Dan Williams
2021-11-24  3:47     ` Dan Williams
2021-11-24  3:47     ` Dan Williams
2021-11-09  8:33 ` [PATCH 28/29] iomap: build the block based code conditionally Christoph Hellwig
2021-11-09  8:33   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:33   ` Christoph Hellwig
2021-11-09  8:33   ` Christoph Hellwig
2021-11-23 23:13   ` Darrick J. Wong
2021-11-23 23:13     ` [dm-devel] " Darrick J. Wong
2021-11-23 23:13     ` Darrick J. Wong
2021-11-24  3:51   ` Dan Williams
2021-11-24  3:51     ` [dm-devel] " Dan Williams
2021-11-24  3:51     ` Dan Williams
2021-11-24  3:51     ` Dan Williams
2021-11-09  8:33 ` [PATCH 29/29] fsdax: don't require CONFIG_BLOCK Christoph Hellwig
2021-11-09  8:33   ` [dm-devel] " Christoph Hellwig
2021-11-09  8:33   ` Christoph Hellwig
2021-11-09  8:33   ` Christoph Hellwig
2021-11-23 23:13   ` Darrick J. Wong
2021-11-23 23:13     ` [dm-devel] " Darrick J. Wong
2021-11-23 23:13     ` Darrick J. Wong
2021-11-24  3:52   ` Dan Williams
2021-11-24  3:52     ` [dm-devel] " Dan Williams
2021-11-24  3:52     ` Dan Williams
2021-11-24  3:52     ` Dan Williams
2021-11-29 10:21 decouple DAX from block devices v2 Christoph Hellwig
2021-11-29 10:21 ` [PATCH 14/29] fsdax: simplify the pgoff calculation Christoph Hellwig
2021-11-29 10:21   ` Christoph Hellwig
2021-11-29 10:21   ` Christoph Hellwig

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='CAPcyv4gVjR05Go=WpK9k-FYO53o+X9PZz2nFL9gniz85nCXu4w@mail.gmail.com' \
    --to=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=snitzer@redhat.com \
    --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.