+ int rc = -ENOMEM;
+ char *name = NULL;
+
+ OBD_ALLOC(name, MTI_NAME_MAXLEN);
+ if (name == NULL)
+ goto out;
+
+ snprintf(name, MTI_NAME_MAXLEN, "orph_cleanup_%s",
+ mdd2obd_dev(d)->obd_name);
+
+ rc = mdd_generic_thread_start(&d->mdd_orph_cleanup_thread,
+ __mdd_orphan_cleanup, (void *)d, name);
+out:
+ if (rc)
+ CERROR("%s: start orphan cleanup thread failed:%d\n",
+ mdd2obd_dev(d)->obd_name, rc);
+ if (name)
+ OBD_FREE(name, MTI_NAME_MAXLEN);
+ return rc;