diff options
author | Dan Williams <dan.j.williams@intel.com> | 2017-04-12 13:37:44 -0700 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2017-04-25 13:20:36 -0700 |
commit | 817bf40265459578abc36c6bd53e27775b5c7ec4 (patch) | |
tree | 7f77cc1bb97457d10d92df83a640d8d90023a653 /include/linux/device-mapper.h | |
parent | f26c5719b2d7b00de69eb83eb1c1c831759fdc9b (diff) | |
download | linux-stable-817bf40265459578abc36c6bd53e27775b5c7ec4.tar.gz linux-stable-817bf40265459578abc36c6bd53e27775b5c7ec4.tar.bz2 linux-stable-817bf40265459578abc36c6bd53e27775b5c7ec4.zip |
dm: teach dm-targets to use a dax_device + dax_operations
Arrange for dm to lookup the dax services available from member devices.
Update the dax-capable targets, linear and stripe, to route dax
operations to the underlying device. Changes the target-internal
->direct_access() method to more closely align with the dax_operations
->direct_access() calling convention.
Cc: Toshi Kani <toshi.kani@hpe.com>
Reviewed-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'include/linux/device-mapper.h')
-rw-r--r-- | include/linux/device-mapper.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h index bcba4d89089c..df830d167892 100644 --- a/include/linux/device-mapper.h +++ b/include/linux/device-mapper.h @@ -128,14 +128,15 @@ typedef int (*dm_busy_fn) (struct dm_target *ti); * < 0 : error * >= 0 : the number of bytes accessible at the address */ -typedef long (*dm_direct_access_fn) (struct dm_target *ti, sector_t sector, - void **kaddr, pfn_t *pfn, long size); +typedef long (*dm_dax_direct_access_fn) (struct dm_target *ti, pgoff_t pgoff, + long nr_pages, void **kaddr, pfn_t *pfn); #define PAGE_SECTORS (PAGE_SIZE / 512) void dm_error(const char *message); struct dm_dev { struct block_device *bdev; + struct dax_device *dax_dev; fmode_t mode; char name[16]; }; @@ -177,7 +178,7 @@ struct target_type { dm_busy_fn busy; dm_iterate_devices_fn iterate_devices; dm_io_hints_fn io_hints; - dm_direct_access_fn direct_access; + dm_dax_direct_access_fn direct_access; /* For internal device-mapper use. */ struct list_head list; |