[PATCH 00/19] Radix tree cleanups

From: Matthew Wilcox
Date: Thu Apr 14 2016 - 10:38:04 EST


This patch series applies on top of the radix-fixes series I sent
recently.

It aims to improve the radix tree by making the code more understandable
and has the nice side-effect of shrinking the code size on i386-tinyconfig
by about 250 bytes. The 'height' concept is entirely gone from the code
by patch 7 of the series. We eliminate most of the tricky arithmetic
on index. This paves the way towards allowing different shift amounts
at different layers of the tree, something I know various people are
interested in.

It integrates two of the patches from Neil Brown which are pre-requisites
for locking exceptional entries.

We end up deleting almost a hundred lines of code from the kernel
(excluding the test-suite).

Matthew Wilcox (18):
drivers/hwspinlock: Use correct radix tree API
radix-tree: Miscellaneous fixes
radix-tree: Split node->path into offset and height
radix-tree: Replace node->height with node->shift
radix-tree: Remove a use of root->height from delete_node
radix tree test suite: Remove dependencies on height
radix-tree: Remove root->height
radix-tree: Rename INDIRECT_PTR to INTERNAL_NODE
radix-tree: Rename ptr_to_indirect() to node_to_entry()
radix-tree: Rename indirect_to_ptr() to entry_to_node()
radix-tree: Rename radix_tree_is_indirect_ptr()
radix-tree: Change naming conventions in radix_tree_shrink
radix-tree: Tidy up next_chunk
radix-tree: Tidy up range_tag_if_tagged
radix-tree: Tidy up __radix_tree_create()
radix-tree: Introduce radix_tree_replace_clear_tags()
radix-tree: Make radix_tree_descend() more useful
radix-tree: Free up the bottom bit of exceptional entries for reuse

NeilBrown (1):
dax: move RADIX_DAX_ definitions to dax.c

drivers/hwspinlock/hwspinlock_core.c | 2 +-
fs/dax.c | 9 +
include/linux/radix-tree.h | 94 +++---
lib/radix-tree.c | 577 +++++++++++++++-------------------
mm/filemap.c | 23 +-
tools/testing/radix-tree/multiorder.c | 99 +++---
tools/testing/radix-tree/test.c | 36 ++-
tools/testing/radix-tree/test.h | 4 +-
8 files changed, 385 insertions(+), 459 deletions(-)

--
2.8.0.rc3