Lines Matching refs:parent
154 struct allowedips_node *parent = NULL;
158 parent = node;
159 if (parent->cidr == cidr) {
163 node = rcu_dereference_protected(parent->bit[choose(parent, key)], lockdep_is_held(lock));
165 *rnode = parent;
169 static inline void connect_node(struct allowedips_node __rcu **parent, u8 bit, struct allowedips_node *node)
171 node->parent_bit_packed = (unsigned long)parent | bit;
172 rcu_assign_pointer(*parent, node);
175 static inline void choose_and_connect_node(struct allowedips_node *parent, struct allowedips_node *node)
177 u8 bit = choose(parent, node->bits);
178 connect_node(&parent->bit[bit], bit, node);
184 struct allowedips_node *node, *parent, *down, *newnode;
223 parent = node;
227 if (!parent)
230 choose_and_connect_node(parent, newnode);
245 if (!parent)
248 choose_and_connect_node(parent, node);
306 struct allowedips_node *node, *child, **parent_bit, *parent, *tmp;
323 parent = (void *)parent_bit -
328 !rcu_access_pointer(parent->peer);
331 parent->bit[!(node->parent_bit_packed & 1)],
337 child->parent_bit_packed = parent->parent_bit_packed;
338 *(struct allowedips_node **)(parent->parent_bit_packed & ~3UL) = child;
339 call_rcu(&parent->rcu, node_free_rcu);