Subject: linux-next: manual merge of the dax-misc tree with Linus' tree

From: Stephen Rothwell <[email-masked]>
Date: Fri, 20 May 2016 13:26:07 +1000

Hi all,

Today's linux-next merge of the dax-misc tree got a conflict in:

  include/linux/dax.h

between commit:

  c8b8e32d700f ("direct-io: eliminate the offset argument to ->direct_IO")

from Linus' tree and commit:

  e804315dd0f5 ("dax: Define DAX lock bit for radix tree exceptional entry")

from the dax-misc tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc include/linux/dax.h
index 982a6c4a62f3,7bf12277c006..000000000000
--- a/include/linux/dax.h
+++ b/include/linux/dax.h
@@@ -3,17 -3,21 +3,21 @@@
  
  #include <linux/fs.h>
  #include <linux/mm.h>
+ #include <linux/radix-tree.h>
  #include <asm/pgtable.h>
  
+ /* We use lowest available exceptional entry bit for locking */
+ #define RADIX_DAX_ENTRY_LOCK (1 << RADIX_TREE_EXCEPTIONAL_SHIFT)
+ 
 -ssize_t dax_do_io(struct kiocb *, struct inode *, struct iov_iter *, loff_t,
 +ssize_t dax_do_io(struct kiocb *, struct inode *, struct iov_iter *,
  		  get_block_t, dio_iodone_t, int flags);
- int dax_clear_sectors(struct block_device *bdev, sector_t _sector, long _size);
  int dax_zero_page_range(struct inode *, loff_t from, unsigned len, get_block_t);
  int dax_truncate_page(struct inode *, loff_t from, get_block_t);
- int dax_fault(struct vm_area_struct *, struct vm_fault *, get_block_t,
- 		dax_iodone_t);
- int __dax_fault(struct vm_area_struct *, struct vm_fault *, get_block_t,
- 		dax_iodone_t);
+ int dax_fault(struct vm_area_struct *, struct vm_fault *, get_block_t);
+ int __dax_fault(struct vm_area_struct *, struct vm_fault *, get_block_t);
+ int dax_delete_mapping_entry(struct address_space *mapping, pgoff_t index);
+ void dax_wake_mapping_entry_waiter(struct address_space *mapping,
+ 				   pgoff_t index, bool wake_all);
  
  #ifdef CONFIG_FS_DAX
  struct page *read_dax_sector(struct block_device *bdev, sector_t n);