-struct lmv_inode {
- struct lu_fid li_fid; /* id of dirobj */
- mdsno_t li_mds; /* cached mdsno where @li_fid lives */
- unsigned long li_size; /* slave size value */
- int li_flags;
-};
-
-#define O_FREEING (1 << 0)
-
-struct lmv_obj {
- struct list_head lo_list;
- struct semaphore lo_guard;
- int lo_state; /* object state. */
- atomic_t lo_count; /* ref counter. */
- struct lu_fid lo_fid; /* master id of dir */
- void *lo_update; /* bitmap of status (up-to-date) */
- __u32 lo_hashtype;
- int lo_objcount; /* number of slaves */
- struct lmv_inode *lo_inodes; /* array of sub-objs */
- struct obd_device *lo_obd; /* pointer to LMV itself */
-};
-
-int lmv_obj_setup(struct obd_device *obd);
-void lmv_obj_cleanup(struct obd_device *obd);
-
-static inline void
-lmv_obj_lock(struct lmv_obj *obj)
-{
- LASSERT(obj);
- down(&obj->lo_guard);
-}
-
-static inline void
-lmv_obj_unlock(struct lmv_obj *obj)
-{
- LASSERT(obj);
- up(&obj->lo_guard);
-}
-
-void lmv_obj_add(struct lmv_obj *obj);
-void lmv_obj_del(struct lmv_obj *obj);
-
-void lmv_obj_put(struct lmv_obj *obj);
-void lmv_obj_free(struct lmv_obj *obj);
-
-struct lmv_obj *lmv_obj_get(struct lmv_obj *obj);
-
-struct lmv_obj *lmv_obj_grab(struct obd_device *obd,
- const struct lu_fid *fid);
-
-struct lmv_obj *lmv_obj_alloc(struct obd_device *obd,
- const struct lu_fid *fid,
- struct lmv_stripe_md *mea);
-
-struct lmv_obj *lmv_obj_create(struct obd_export *exp,
- const struct lu_fid *fid,
- struct lmv_stripe_md *mea);
-
-int lmv_obj_delete(struct obd_export *exp,
- const struct lu_fid *fid);
-