xa_head
head = rcu_access_pointer(mapping->i_pages.xa_head);
return root->xa_head == NULL;
return rcu_dereference_check(xa->xa_head,
return rcu_dereference_protected(xa->xa_head,
return xa_head(xas->xa);
void __rcu * xa_head;
.xa_head = NULL, \
xa->xa_head = NULL;
return xa->xa_head == NULL;
if (slot != &idr->idr_rt.xa_head && !xa_is_retry(entry))
pr_debug("ida: %p node %p free %d\n", ida, xa->xa_head,
ida_dump_entry(xa->xa_head, 0);
return (void __rcu **)&root->xa_head;
void __rcu **slot = (void __rcu **)&root->xa_head;
child = rcu_dereference_raw(root->xa_head);
struct radix_tree_node *node = rcu_dereference_raw(idr->idr_rt.xa_head);
idr->idr_rt.xa_head = NULL;
struct radix_tree_node *node = rcu_dereference_raw(root->xa_head);
entry = rcu_dereference_raw(root->xa_head);
rcu_assign_pointer(root->xa_head, entry);
struct radix_tree_node *node = rcu_dereference_raw(root->xa_head);
root->xa_head = (void __rcu *)child;
rcu_dereference_raw(root->xa_head))
root->xa_head = NULL;
void __rcu **slot = (void __rcu **)&root->xa_head;
child = rcu_dereference_raw(root->xa_head);
slot = (void __rcu **)&root->xa_head;
WARN_ON_ONCE(!node && (slot != (void __rcu **)&root->xa_head) &&
node = xa_head(xa);
XA_BUG_ON(xa, xa_head(xa) == node);
XA_BUG_ON(xa, xa->xa_head != node);
XA_BUG_ON(xa, xa_to_node(xa_head(xa))->count != 2);
XA_BUG_ON(xa, xa_to_node(xa_head(xa))->nr_values != 2);
XA_BUG_ON(xa, xa_to_node(xa_head(xa))->count != 3);
XA_BUG_ON(xa, xa_to_node(xa_head(xa))->nr_values != 2);
XA_BUG_ON(xa, xa_to_node(xa_head(xa))->count != 4);
XA_BUG_ON(xa, xa_to_node(xa_head(xa))->nr_values != 4);
entry = xa_head(xas->xa);
entry = xa_head(xas->xa);
RCU_INIT_POINTER(xa->xa_head, NULL);
void *entry = xa->xa_head;
RCU_INIT_POINTER(xa->xa_head, entry);
xas->xa->xa_head = NULL;
rcu_assign_pointer(xa->xa_head, head);
slot = &xa->xa_head;
slot = &xa->xa_head;
void __rcu **slot = &xas->xa->xa_head;
struct radix_tree_node *node = root->xa_head;
struct radix_tree_node *node = root->xa_head;