mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-22 23:04:43 +00:00
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:
parent
66ee620f06
commit
3159f943aa
26 changed files with 278 additions and 232 deletions
|
@ -440,7 +440,7 @@ static noinline int add_ra_bio_pages(struct inode *inode,
|
|||
rcu_read_lock();
|
||||
page = radix_tree_lookup(&mapping->i_pages, pg_index);
|
||||
rcu_read_unlock();
|
||||
if (page && !radix_tree_exceptional_entry(page)) {
|
||||
if (page && !xa_is_value(page)) {
|
||||
misses++;
|
||||
if (misses > 4)
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue