xarray: Replace exceptional entries
Introduce xarray value entries and tagged pointers to replace radix tree exceptional entries. This is a slight change in encoding to allow the use of an extra bit (we can now store BITS_PER_LONG - 1 bits in a value entry). It is also a change in emphasis; exceptional entries are intimidating and different. As the comment explains, you can choose to store values or pointers in the xarray and they are both first-class citizens. Signed-off-by: Matthew Wilcox <willy@infradead.org> Reviewed-by: Josef Bacik <jbacik@fb.com>
This commit is contained in:
@@ -19,7 +19,7 @@
|
||||
|
||||
#include "test.h"
|
||||
|
||||
#define DUMMY_PTR ((void *)0x12)
|
||||
#define DUMMY_PTR ((void *)0x10)
|
||||
|
||||
int item_idr_free(int id, void *p, void *data)
|
||||
{
|
||||
@@ -411,11 +411,11 @@ void ida_check_conv_user(void)
|
||||
int id = ida_alloc(&ida, GFP_NOWAIT);
|
||||
if (id == -ENOMEM) {
|
||||
IDA_BUG_ON(&ida, (i % IDA_BITMAP_BITS) !=
|
||||
BITS_PER_LONG - 2);
|
||||
BITS_PER_XA_VALUE);
|
||||
id = ida_alloc(&ida, GFP_KERNEL);
|
||||
} else {
|
||||
IDA_BUG_ON(&ida, (i % IDA_BITMAP_BITS) ==
|
||||
BITS_PER_LONG - 2);
|
||||
BITS_PER_XA_VALUE);
|
||||
}
|
||||
IDA_BUG_ON(&ida, id != i);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user