-struct lmv_stripe {
- /**
- * Dir stripe fid.
- */
- struct lu_fid ls_fid;
- /**
- * Cached home mds number for \a li_fid.
- */
- mdsno_t ls_mds;
- /**
- * Stripe object size.
- */
- unsigned long ls_size;
- /**
- * Stripe flags.
- */
- int ls_flags;
-};
-
-#define O_FREEING (1 << 0)
-
-struct lmv_object {
- /**
- * Link to global objects list.
- */
- cfs_list_t lo_list;
- /**
- * Sema for protecting fields.
- */
- cfs_semaphore_t lo_guard;
- /**
- * Object state like O_FREEING.
- */
- int lo_state;
- /**
- * Object ref counter.
- */
- cfs_atomic_t lo_count;
- /**
- * Object master fid.
- */
- struct lu_fid lo_fid;
- /**
- * Object hash type to find stripe by name.
- */
- __u32 lo_hashtype;
- /**
- * Number of stripes.
- */
- int lo_objcount;
- /**
- * Array of sub-objs.
- */
- struct lmv_stripe *lo_stripes;
- /**
- * Pointer to LMV obd.
- */
- struct obd_device *lo_obd;
-};
-
-int lmv_object_setup(struct obd_device *obd);
-void lmv_object_cleanup(struct obd_device *obd);
-
-static inline void
-lmv_object_lock(struct lmv_object *obj)
-{
- LASSERT(obj);
- cfs_down(&obj->lo_guard);
-}
-
-static inline void
-lmv_object_unlock(struct lmv_object *obj)
-{
- LASSERT(obj);
- cfs_up(&obj->lo_guard);
-}
-
-void lmv_object_add(struct lmv_object *obj);
-void lmv_object_del(struct lmv_object *obj);
-
-void lmv_object_put(struct lmv_object *obj);
-void lmv_object_put_unlock(struct lmv_object *obj);
-void lmv_object_free(struct lmv_object *obj);
-
-struct lmv_object *lmv_object_get(struct lmv_object *obj);
-
-struct lmv_object *lmv_object_find(struct obd_device *obd,
- const struct lu_fid *fid);
-
-struct lmv_object *lmv_object_find_lock(struct obd_device *obd,
- const struct lu_fid *fid);
-
-struct lmv_object *lmv_object_alloc(struct obd_device *obd,
- const struct lu_fid *fid,
- struct lmv_stripe_md *mea);
-
-struct lmv_object *lmv_object_create(struct obd_export *exp,
- const struct lu_fid *fid,
- struct lmv_stripe_md *mea);
-
-int lmv_object_delete(struct obd_export *exp,
- const struct lu_fid *fid);
-