* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#define _LGPL_SOURCE
#include <stdint.h>
#include <errno.h>
#include <limits.h>
CAA_BUILD_BUG_ON(CAA_ARRAY_SIZE(ja_types) > JA_TYPE_MAX_NR);
}
-/* Never declared. Opaque type used to store flagged node pointers. */
-struct rcu_ja_node_flag;
-
/*
* The rcu_ja_node contains the compressed node data needed for
* read-side. For linear and pool node configurations, it starts with a
/* add node */
ret = _ja_node_set_nth(new_node_flag, n, child_node_flag);
assert(!ret);
+ /* Replace the old node with the new recompacted one */
+ rcu_assign_pointer(*old_node_flag, new_node_flag);
+ /* TODO: free old_node (call_rcu) */
return 0;
}