ret = -ENOENT;
spin_unlock(&o2hb_live_lock);
- if (!ret)
- ret = o2nm_depend_item(®->hr_item);
+ if (ret)
+ goto out;
+
+ ret = o2nm_depend_this_node();
+ if (ret)
+ goto out;
+ ret = o2nm_depend_item(®->hr_item);
+ if (ret)
+ o2nm_undepend_this_node();
+
+out:
return ret;
}
spin_unlock(&o2hb_live_lock);
- if (reg)
+ if (reg) {
o2nm_undepend_item(®->hr_item);
+ o2nm_undepend_this_node();
+ }
}
int o2hb_register_callback(const char *region_uuid,