+ if (node_flag_ptr && ja_node_ptr(*node_flag_ptr)) {
+ /*
+ * Target node has been updated between RCU lookup and
+ * lock acquisition. We need to re-try lookup and
+ * attach.
+ */
+ ret = -EAGAIN;
+ goto unlock_parent;
+ }
+
+ if (attach_node_flag_ptr && ja_node_ptr(*attach_node_flag_ptr) !=
+ ja_node_ptr(attach_node_flag)) {
+ /*
+ * Target node has been updated between RCU lookup and
+ * lock acquisition. We need to re-try lookup and
+ * attach.
+ */
+ ret = -EAGAIN;
+ goto unlock_parent;
+ }
+