+int lod_alloc_foreign_lov(struct lod_object *lo, size_t size);
+void lod_free_foreign_lov(struct lod_object *lo);
+void lod_striping_free_nolock(const struct lu_env *env, struct lod_object *lo);
+void lod_striping_free(const struct lu_env *env, struct lod_object *lo);
+
+int lod_obj_for_each_stripe(const struct lu_env *env, struct lod_object *lo,
+ struct thandle *th,
+ struct lod_obj_stripe_cb_data *data);
+int lod_comp_copy_ost_lists(struct lod_layout_component *lod_comp,
+ struct lov_user_md_v3 *v3);
+
+/* lod_sub_object.c */
+struct thandle *lod_sub_get_thandle(const struct lu_env *env,
+ struct thandle *th,
+ const struct dt_object *sub_obj,
+ bool *record_update);
+int lod_sub_declare_create(const struct lu_env *env, struct dt_object *dt,
+ struct lu_attr *attr,
+ struct dt_allocation_hint *hint,
+ struct dt_object_format *dof, struct thandle *th);
+int lod_sub_create(const struct lu_env *env, struct dt_object *dt,
+ struct lu_attr *attr, struct dt_allocation_hint *hint,
+ struct dt_object_format *dof, struct thandle *th);
+int lod_sub_declare_ref_add(const struct lu_env *env, struct dt_object *dt,
+ struct thandle *th);
+int lod_sub_ref_add(const struct lu_env *env, struct dt_object *dt,
+ struct thandle *th);
+int lod_sub_declare_ref_del(const struct lu_env *env, struct dt_object *dt,
+ struct thandle *th);
+int lod_sub_ref_del(const struct lu_env *env, struct dt_object *dt,
+ struct thandle *th);
+int lod_sub_declare_destroy(const struct lu_env *env, struct dt_object *dt,
+ struct thandle *th);
+int lod_sub_destroy(const struct lu_env *env, struct dt_object *dt,
+ struct thandle *th);
+int lod_sub_declare_insert(const struct lu_env *env, struct dt_object *dt,
+ const struct dt_rec *rec, const struct dt_key *key,
+ struct thandle *th);
+int lod_sub_insert(const struct lu_env *env, struct dt_object *dt,
+ const struct dt_rec *rec, const struct dt_key *key,
+ struct thandle *th);
+int lod_sub_declare_delete(const struct lu_env *env, struct dt_object *dt,
+ const struct dt_key *key, struct thandle *th);
+int lod_sub_delete(const struct lu_env *env, struct dt_object *dt,
+ const struct dt_key *name, struct thandle *th);
+int lod_sub_declare_xattr_set(const struct lu_env *env, struct dt_object *dt,
+ const struct lu_buf *buf, const char *name,
+ int fl, struct thandle *th);
+int lod_sub_xattr_set(const struct lu_env *env, struct dt_object *dt,
+ const struct lu_buf *buf, const char *name, int fl,
+ struct thandle *th);
+int lod_sub_declare_attr_set(const struct lu_env *env, struct dt_object *dt,
+ const struct lu_attr *attr, struct thandle *th);
+int lod_sub_attr_set(const struct lu_env *env, struct dt_object *dt,
+ const struct lu_attr *attr, struct thandle *th);
+int lod_sub_declare_xattr_del(const struct lu_env *env, struct dt_object *dt,
+ const char *name, struct thandle *th);
+int lod_sub_xattr_del(const struct lu_env *env, struct dt_object *dt,
+ const char *name, struct thandle *th);
+int lod_sub_declare_write(const struct lu_env *env, struct dt_object *dt,
+ const struct lu_buf *buf, loff_t pos,
+ struct thandle *th);
+ssize_t lod_sub_write(const struct lu_env *env, struct dt_object *dt,
+ const struct lu_buf *buf, loff_t *pos,
+ struct thandle *th);
+int lod_sub_declare_punch(const struct lu_env *env, struct dt_object *dt,
+ __u64 start, __u64 end, struct thandle *th);
+int lod_sub_punch(const struct lu_env *env, struct dt_object *dt,
+ __u64 start, __u64 end, struct thandle *th);
+
+int lod_sub_prep_llog(const struct lu_env *env, struct lod_device *lod,
+ struct dt_device *dt, int index);