Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1497534

[PATCH v5 12/17] dax: add dax_iomap_sector() helper function

From Ross Zwisler <ross.zwisler@linux.intel.com>
Newsgroups linux.kernel
Subject [PATCH v5 12/17] dax: add dax_iomap_sector() helper function
Date 2016-10-07 23:20 +0200
Message-ID <spKIG-69y-5@gated-at.bofh.it> (permalink)
References <spKyZ-65z-11@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


To be able to correctly calculate the sector from a file position and a
struct iomap there is a complex little bit of logic that currently happens
in both dax_iomap_actor() and dax_iomap_fault().  This will need to be
repeated yet again in the DAX PMD fault handler when it is added, so break
it out into a helper function.

Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
---
 fs/dax.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/fs/dax.c b/fs/dax.c
index 982ccbb..7689ab0 100644
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -1023,6 +1023,11 @@ int dax_truncate_page(struct inode *inode, loff_t from, get_block_t get_block)
 EXPORT_SYMBOL_GPL(dax_truncate_page);
 
 #ifdef CONFIG_FS_IOMAP
+static inline sector_t dax_iomap_sector(struct iomap *iomap, loff_t pos)
+{
+	return iomap->blkno + (((pos & PAGE_MASK) - iomap->offset) >> 9);
+}
+
 static loff_t
 dax_iomap_actor(struct inode *inode, loff_t pos, loff_t length, void *data,
 		struct iomap *iomap)
@@ -1048,8 +1053,7 @@ dax_iomap_actor(struct inode *inode, loff_t pos, loff_t length, void *data,
 		struct blk_dax_ctl dax = { 0 };
 		ssize_t map_len;
 
-		dax.sector = iomap->blkno +
-			(((pos & PAGE_MASK) - iomap->offset) >> 9);
+		dax.sector = dax_iomap_sector(iomap, pos);
 		dax.size = (length + offset + PAGE_SIZE - 1) & PAGE_MASK;
 		map_len = dax_map_atomic(iomap->bdev, &dax);
 		if (map_len < 0) {
@@ -1186,7 +1190,7 @@ int dax_iomap_fault(struct vm_area_struct *vma, struct vm_fault *vmf,
 		goto unlock_entry;
 	}
 
-	sector = iomap.blkno + (((pos & PAGE_MASK) - iomap.offset) >> 9);
+	sector = dax_iomap_sector(&iomap, pos);
 
 	if (vmf->cow_page) {
 		switch (iomap.type) {
-- 
2.7.4

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v5 00/17] re-enable DAX PMD support Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-07 23:10 +0200
  [PATCH v5 07/17] dax: remove the last BUG_ON() from fs/dax.c Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-07 23:10 +0200
    Re: [PATCH v5 07/17] dax: remove the last BUG_ON() from fs/dax.c Jan Kara <jack@suse.cz> - 2016-10-11 21:00 +0200
  [PATCH v5 04/17] ext2: remove support for DAX PMD faults Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-07 23:20 +0200
  [PATCH v5 01/17] ext4: allow DAX writeback for hole punch Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-07 23:20 +0200
  [PATCH v5 12/17] dax: add dax_iomap_sector() helper function Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-07 23:20 +0200
    Re: [PATCH v5 12/17] dax: add dax_iomap_sector() helper function Christoph Hellwig <hch@lst.de> - 2016-10-10 17:50 +0200
    Re: [PATCH v5 12/17] dax: add dax_iomap_sector() helper function Jan Kara <jack@suse.cz> - 2016-10-11 20:50 +0200
  [PATCH v5 13/17] dax: dax_iomap_fault() needs to call iomap_end() Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-07 23:20 +0200
    Re: [PATCH v5 13/17] dax: dax_iomap_fault() needs to call         iomap_end() Christoph Hellwig <hch@lst.de> - 2016-10-10 18:00 +0200
      Re: [PATCH v5 13/17] dax: dax_iomap_fault() needs to call iomap_end() Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-11 00:10 +0200
    Re: [PATCH v5 13/17] dax: dax_iomap_fault() needs to call iomap_end() Jan Kara <jack@suse.cz> - 2016-10-11 20:50 +0200
  [PATCH v5 16/17] xfs: use struct iomap based DAX PMD fault path Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-07 23:20 +0200
    Re: [PATCH v5 16/17] xfs: use struct iomap based DAX PMD fault path Jan Kara <jack@suse.cz> - 2016-10-11 20:50 +0200
  [PATCH v5 08/17] dax: consistent variable naming for DAX entries Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-07 23:20 +0200
  [PATCH v5 05/17] ext2: return -EIO on ext2_iomap_end() failure Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-07 23:20 +0200
    Re: [PATCH v5 05/17] ext2: return -EIO on ext2_iomap_end() failure Jan Kara <jack@suse.cz> - 2016-10-11 21:00 +0200
  [PATCH v5 03/17] dax: remove buffer_size_valid() Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-07 23:20 +0200
  [PATCH v5 09/17] dax: coordinate locking for offsets in PMD range Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-07 23:20 +0200
    Re: [PATCH v5 09/17] dax: coordinate locking for offsets in PMD         range Christoph Hellwig <hch@lst.de> - 2016-10-10 17:50 +0200
    Re: [PATCH v5 09/17] dax: coordinate locking for offsets in PMD range Jan Kara <jack@suse.cz> - 2016-10-11 20:50 +0200
      Re: [PATCH v5 09/17] dax: coordinate locking for offsets in PMD range Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-11 23:20 +0200
  [PATCH v5 02/17] ext4: tell DAX the size of allocation holes Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-07 23:20 +0200
  [PATCH v5 11/17] dax: correct dax iomap code namespace Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-07 23:20 +0200
    Re: [PATCH v5 11/17] dax: correct dax iomap code namespace Christoph Hellwig <hch@lst.de> - 2016-10-09 17:30 +0200
      [PATCH] dax: correct dax iomap code namespace Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-10 21:10 +0200
        Re: [PATCH] dax: correct dax iomap code namespace Dave Chinner <david@fromorbit.com> - 2016-10-10 22:50 +0200
  [PATCH v5 17/17] dax: remove "depends on BROKEN" from FS_DAX_PMD Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-07 23:20 +0200
  [PATCH v5 14/17] dax: move RADIX_DAX_* defines to dax.h Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-07 23:20 +0200
    Re: [PATCH v5 14/17] dax: move RADIX_DAX_* defines to dax.h Christoph Hellwig <hch@lst.de> - 2016-10-10 18:00 +0200
    Re: [PATCH v5 14/17] dax: move RADIX_DAX_* defines to dax.h Jan Kara <jack@suse.cz> - 2016-10-11 20:50 +0200
  [PATCH v5 10/17] dax: remove dax_pmd_fault() Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-07 23:20 +0200
  [PATCH v5 15/17] dax: add struct iomap based DAX PMD support Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-07 23:20 +0200
    Re: [PATCH v5 15/17] dax: add struct iomap based DAX PMD support Christoph Hellwig <hch@lst.de> - 2016-10-10 18:00 +0200
      Re: [PATCH v5 15/17] dax: add struct iomap based DAX PMD support Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-11 00:10 +0200
      Re: [PATCH v5 15/17] dax: add struct iomap based DAX PMD support Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-11 23:50 +0200
    Re: [PATCH v5 15/17] dax: add struct iomap based DAX PMD support Jan Kara <jack@suse.cz> - 2016-10-11 21:00 +0200
      Re: [PATCH v5 15/17] dax: add struct iomap based DAX PMD support Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-10-12 01:00 +0200
        Re: [PATCH v5 15/17] dax: add struct iomap based DAX PMD support Jan Kara <jack@suse.cz> - 2016-10-12 09:50 +0200

csiph-web