-#define MEA_SIZE_LMV(lmv) \
- ((lmv)->desc.ld_tgt_count * \
- sizeof(struct lustre_id) + sizeof(struct mea))
-
-struct lmv_inode {
- struct lustre_id id; /* id of dirobj */
- unsigned long size; /* slave size value */
- int flags;
-};
-
-#define O_FREEING (1 << 0)
-
-struct lmv_obj {
- struct list_head list;
- struct semaphore guard;
- int state; /* object state. */
- atomic_t count; /* ref counter. */
- struct lustre_id id; /* master id of dir */
- void *update; /* bitmap of status (uptodate) */
- __u32 hashtype;
- int objcount; /* number of slaves */
- struct lmv_inode *objs; /* array of dirobjs */
- struct obd_device *obd; /* pointer to LMV itself */
- unsigned long mtime;
- unsigned long ctime;
- unsigned long atime;
- unsigned long nlink;
-};
-
-static inline void
-lmv_lock_obj(struct lmv_obj *obj)
+int lmv_intent_lock(struct obd_export *exp, struct md_op_data *op_data,
+ struct lookup_intent *it, struct ptlrpc_request **reqp,
+ ldlm_blocking_callback cb_blocking,
+ __u64 extra_lock_flags);
+
+int lmv_blocking_ast(struct ldlm_lock *, struct ldlm_lock_desc *,
+ void *, int);
+int lmv_fld_lookup(struct lmv_obd *lmv, const struct lu_fid *fid, u32 *mds);
+int lmv_fid_alloc(const struct lu_env *env, struct obd_export *exp,
+ struct lu_fid *fid, struct md_op_data *op_data);
+
+int lmv_revalidate_slaves(struct obd_export *exp,
+ const struct lu_fid *pfid,
+ const struct lmv_stripe_md *lsm,
+ ldlm_blocking_callback cb_blocking,
+ int extra_lock_flags);
+
+int lmv_getattr_name(struct obd_export *exp, struct md_op_data *op_data,
+ struct ptlrpc_request **preq);
+void lmv_activate_target(struct lmv_obd *lmv, struct lmv_tgt_desc *tgt,
+ int activate);
+
+int lmv_statfs_check_update(struct obd_device *obd, struct lmv_tgt_desc *tgt);
+
+static inline struct obd_device *lmv2obd_dev(struct lmv_obd *lmv)