- struct lu_device *d;
- struct osc_device *od;
- struct obd_device *obd;
- int rc;
-
- OBD_ALLOC_PTR(od);
- if (od == NULL)
- RETURN(ERR_PTR(-ENOMEM));
-
- cl_device_init(&od->od_cl, t);
- d = osc2lu_dev(od);
- d->ld_ops = &osc_lu_ops;
- od->od_cl.cd_ops = &osc_cl_ops;
-
- /* Setup OSC OBD */
- obd = class_name2obd(lustre_cfg_string(cfg, 0));
- LASSERT(obd != NULL);
- rc = osc_setup(obd, cfg);
- if (rc) {
- osc_device_free(env, d);
- RETURN(ERR_PTR(rc));
- }
- od->od_exp = obd->obd_self_export;
- RETURN(d);
+ struct lu_device *d;
+ struct osc_device *osc;
+ struct obd_device *obd;
+ int rc;
+
+ OBD_ALLOC_PTR(osc);
+ if (osc == NULL)
+ RETURN(ERR_PTR(-ENOMEM));
+
+ cl_device_init(&osc->osc_cl, t);
+ d = osc2lu_dev(osc);
+ d->ld_ops = &osc_lu_ops;
+
+ /* Setup OSC OBD */
+ obd = class_name2obd(lustre_cfg_string(cfg, 0));
+ LASSERT(obd != NULL);
+ rc = osc_setup(obd, cfg);
+ if (rc) {
+ osc_device_free(env, d);
+ RETURN(ERR_PTR(rc));
+ }
+ osc->osc_exp = obd->obd_self_export;
+ osc->osc_stats.os_init = ktime_get_real();
+ RETURN(d);