+static int osd_oi_index_create(struct osd_thread_info *info,
+ struct dt_device *dev,
+ struct md_device *mdev)
+{
+ const struct lu_env *env;
+ struct lu_fid *oi_fid = &info->oti_fid;
+ struct md_object *mdo;
+ int i;
+ int rc;
+
+ env = info->oti_env;
+
+ for (i = rc = 0; i < OSD_OI_FID_NR && rc == 0; ++i) {
+ char *name;
+ name = oi_descr[i].name;
+ lu_local_obj_fid(oi_fid, oi_descr[i].oid);
+ oi_feat.dif_keysize_min = oi_descr[i].fid_size,
+ oi_feat.dif_keysize_max = oi_descr[i].fid_size,
+
+ mdo = llo_store_create_index(env, mdev, dev,
+ "", name,
+ oi_fid, &oi_feat);
+
+ if (IS_ERR(mdo))
+ RETURN(PTR_ERR(mdo));
+
+ lu_object_put(env, &mdo->mo_lu);
+ }
+ return 0;
+}
+