+
+ name_destroy(&mrd->nodeuuid);
+ if (rc)
+ return rc;
+
+ if (mrd->failover) {
+ ptr = mrd->failover;
+ while (class_parse_nid(ptr, &nid, &ptr) == 0) {
+ if (mrd->nodeuuid == NULL) {
+ rc = name_create(&mrd->nodeuuid,
+ libcfs_nid2str(nid),
+ "");
+ if (rc)
+ return rc;
+ }
+
+ CDEBUG(D_MGS, "add nid %s for failover %s\n",
+ libcfs_nid2str(nid), mrd->nodeuuid);
+ rc = record_add_uuid(env, mrd->temp_llh, nid,
+ mrd->nodeuuid);
+ if (rc) {
+ name_destroy(&mrd->nodeuuid);
+ return rc;
+ }
+ if (*ptr == ':') {
+ rc = record_add_conn(env,
+ mrd->temp_llh,
+ lustre_cfg_string(lcfg, 0),
+ mrd->nodeuuid);
+ name_destroy(&mrd->nodeuuid);
+ if (rc)
+ return rc;
+ }
+ }
+ if (mrd->nodeuuid) {
+ rc = record_add_conn(env, mrd->temp_llh,
+ lustre_cfg_string(lcfg, 0),
+ mrd->nodeuuid);
+ name_destroy(&mrd->nodeuuid);
+ if (rc)
+ return rc;
+ }
+ }
+ mrd->state = REPLACE_DONE;