+
+void urcu_register_rculfhash_atfork(struct urcu_atfork *atfork)
+{
+ if (CMM_LOAD_SHARED(registered_rculfhash_atfork))
+ return;
+ call_rcu_lock(&call_rcu_mutex);
+ if (!registered_rculfhash_atfork)
+ registered_rculfhash_atfork = atfork;
+ call_rcu_unlock(&call_rcu_mutex);
+}
+
+/*
+ * This unregistration function is deprecated, meant only for internal
+ * use by rculfhash.
+ */
+__attribute__((noreturn))
+void urcu_unregister_rculfhash_atfork(struct urcu_atfork *atfork __attribute__((unused)))
+{
+ urcu_die(EPERM);
+}