Hi Linus,
We found some bugs in the DAX conversion to XArray (and one bug which predated the XArray conversion). There were a couple of bugs in some of the higher-level functions, which aren't actually being called in today's kernel, but surfaced as a result of converting existing radix tree & IDR users over to the XArray. Some of the other changes to how the higher-level APIs work were also motivated by converting various users; again, they're not in use in today's kernel, so changing them has a low probability of introducing a bug. Dan can still trigger a bug in the DAX code with hot-offline/online, and we're working on tracking that down. The following changes since commit 651022382c7f8da46cb4872a545ee1da6d097d2a: Linux 4.20-rc1 (2018-11-04 15:37:52 -0800) are available in the Git repository at: git://git.infradead.org/users/willy/linux-dax.git xarray for you to fetch changes up to fffc9a260e38acec3187515738122a3ecb24ac90: XArray tests: Add missing locking (2018-11-19 09:41:11 -0500) ---------------------------------------------------------------- Matthew Wilcox (19): XArray: Fix xa_for_each with a single element at 0 XArray: Export __xa_foo to non-GPL modules nilfs2: Use xa_erase_irq XArray: Regularise xa_reserve XArray: Unify xa_cmpxchg and __xa_cmpxchg XArray: Turn xa_erase into an exported function XArray: Add xa_store_bh() and xa_store_irq() XArray: Unify xa_store and __xa_store XArray: Handle NULL pointers differently for allocation XArray: Fix Documentation XArray: Correct xa_store_range XArray tests: Correct some 64-bit assumptions dax: Remove optimisation from dax_lock_mapping_entry dax: Make sure the unlocking entry isn't locked dax: Reinstate RCU protection of inode dax: Fix dax_unlock_mapping_entry for PMD pages dax: Fix huge page faults dax: Avoid losing wakeup in dax_lock_mapping_entry XArray tests: Add missing locking Documentation/core-api/xarray.rst | 52 ++++++-- fs/dax.c | 60 +++++---- fs/nilfs2/btnode.c | 4 +- include/linux/xarray.h | 267 +++++++++++++++++++++++++++++--------- lib/test_xarray.c | 50 ++++++- lib/xarray.c | 139 +++++++++----------- 6 files changed, 387 insertions(+), 185 deletions(-)