diff options
author | Matthew Wilcox <willy@linux.intel.com> | 2016-05-20 17:03:54 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-05-20 17:58:30 -0700 |
commit | 3bcadd6fa6c4fd07ace3626357c824eb532488a6 (patch) | |
tree | 4e0fee97bdc25e76f7a786e1049a9aab6208d518 /lib | |
parent | 78a9be0a0a3367b94af242632c525d22b26f1a87 (diff) | |
download | op-kernel-dev-3bcadd6fa6c4fd07ace3626357c824eb532488a6.zip op-kernel-dev-3bcadd6fa6c4fd07ace3626357c824eb532488a6.tar.gz |
radix-tree: free up the bottom bit of exceptional entries for reuse
We are guaranteed that pointers to radix_tree_nodes always have the
bottom two bits clear (because they come from a slab cache, and slab
caches have a minimum alignment of sizeof(void *)), so we can redefine
'radix_tree_is_internal_node' to only return true if the bottom two bits
have value '01'. This frees up one quarter of the potential values for
use by the user.
Idea from Neil Brown.
Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
Suggested-by: Neil Brown <neilb@suse.de>
Cc: Konstantin Khlebnikov <koct9i@gmail.com>
Cc: Kirill Shutemov <kirill.shutemov@linux.intel.com>
Cc: Jan Kara <jack@suse.com>
Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions