Hi, While pondering some issues with DAX and how it uses the radix tree I conceived the following patches. I don't know if they'll be useful but I thought I would post them in case they are helpful. The first is quite independent of the others - it removes some DAX specific #defines from radix-tree.h which is a generic ADT. The second makes an extra bit available when exception data is stored in the radix tree. The third uses this bit to provide a sleeping lock. With this it should be possible to delete exceptional entries from the radix tree in a race-free way without external locking. Like the page lock it requires an external set of wait_queue_heads. The same ones used for page_lock would be suitable. Note that this code is only compile tested. NeilBrown --- NeilBrown (3): DAX: move RADIX_DAX_ definitions to dax.c radix-tree: make 'indirect' bit available to exception entries. radix-tree: support locking of individual exception entries. fs/dax.c | 9 ++ include/linux/radix-tree.h | 28 +++++--- lib/radix-tree.c | 160 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 185 insertions(+), 12 deletions(-) -- Signature -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html