diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2018-06-22 21:20:35 +0200 | 
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2018-06-22 21:20:35 +0200 | 
| commit | 7731b8bc94e599c9a79e428f3359ff2c34b7576a (patch) | |
| tree | 879f18ccbe274122f2d4f095b43cbc7f953e0ada /include/linux/dax.h | |
| parent | 48e315618dc4dc8904182cd221e3d395d5d97005 (diff) | |
| parent | 9ffc59d57228d74809700be6f7ecb1db10292f05 (diff) | |
Merge branch 'linus' into x86/urgent
Required to queue a dependent fix.
Diffstat (limited to 'include/linux/dax.h')
| -rw-r--r-- | include/linux/dax.h | 27 | 
1 files changed, 20 insertions, 7 deletions
diff --git a/include/linux/dax.h b/include/linux/dax.h index f9eb22ad341e..3855e3800f48 100644 --- a/include/linux/dax.h +++ b/include/linux/dax.h @@ -20,6 +20,9 @@ struct dax_operations {  	/* copy_from_iter: required operation for fs-dax direct-i/o */  	size_t (*copy_from_iter)(struct dax_device *, pgoff_t, void *, size_t,  			struct iov_iter *); +	/* copy_to_iter: required operation for fs-dax direct-i/o */ +	size_t (*copy_to_iter)(struct dax_device *, pgoff_t, void *, size_t, +			struct iov_iter *);  };  extern struct attribute_group dax_attribute_group; @@ -64,10 +67,10 @@ static inline bool dax_write_cache_enabled(struct dax_device *dax_dev)  struct writeback_control;  int bdev_dax_pgoff(struct block_device *, sector_t, size_t, pgoff_t *pgoff);  #if IS_ENABLED(CONFIG_FS_DAX) -int __bdev_dax_supported(struct super_block *sb, int blocksize); -static inline int bdev_dax_supported(struct super_block *sb, int blocksize) +bool __bdev_dax_supported(struct block_device *bdev, int blocksize); +static inline bool bdev_dax_supported(struct block_device *bdev, int blocksize)  { -	return __bdev_dax_supported(sb, blocksize); +	return __bdev_dax_supported(bdev, blocksize);  }  static inline struct dax_device *fs_dax_get_by_host(const char *host) @@ -83,10 +86,13 @@ static inline void fs_put_dax(struct dax_device *dax_dev)  struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev);  int dax_writeback_mapping_range(struct address_space *mapping,  		struct block_device *bdev, struct writeback_control *wbc); + +struct page *dax_layout_busy_page(struct address_space *mapping);  #else -static inline int bdev_dax_supported(struct super_block *sb, int blocksize) +static inline bool bdev_dax_supported(struct block_device *bdev, +		int blocksize)  { -	return -EOPNOTSUPP; +	return false;  }  static inline struct dax_device *fs_dax_get_by_host(const char *host) @@ -103,6 +109,11 @@ static inline struct dax_device *fs_dax_get_by_bdev(struct block_device *bdev)  	return NULL;  } +static inline struct page *dax_layout_busy_page(struct address_space *mapping) +{ +	return NULL; +} +  static inline int dax_writeback_mapping_range(struct address_space *mapping,  		struct block_device *bdev, struct writeback_control *wbc)  { @@ -118,14 +129,16 @@ long dax_direct_access(struct dax_device *dax_dev, pgoff_t pgoff, long nr_pages,  		void **kaddr, pfn_t *pfn);  size_t dax_copy_from_iter(struct dax_device *dax_dev, pgoff_t pgoff, void *addr,  		size_t bytes, struct iov_iter *i); +size_t dax_copy_to_iter(struct dax_device *dax_dev, pgoff_t pgoff, void *addr, +		size_t bytes, struct iov_iter *i);  void dax_flush(struct dax_device *dax_dev, void *addr, size_t size);  ssize_t dax_iomap_rw(struct kiocb *iocb, struct iov_iter *iter,  		const struct iomap_ops *ops);  int dax_iomap_fault(struct vm_fault *vmf, enum page_entry_size pe_size,  		    pfn_t *pfnp, int *errp, const struct iomap_ops *ops); -int dax_finish_sync_fault(struct vm_fault *vmf, enum page_entry_size pe_size, -			  pfn_t pfn); +vm_fault_t dax_finish_sync_fault(struct vm_fault *vmf, +		enum page_entry_size pe_size, pfn_t pfn);  int dax_delete_mapping_entry(struct address_space *mapping, pgoff_t index);  int dax_invalidate_mapping_entry_sync(struct address_space *mapping,  				      pgoff_t index);  | 
