__u32 ltd_index;
struct ltd_qos ltd_qos; /* qos info per target */
struct obd_statfs ltd_statfs;
+ struct ptlrpc_thread *ltd_recovery_thread;
unsigned long ltd_active:1,/* is this target up for requests */
ltd_activate:1,/* should target be activated */
ltd_reap:1; /* should this target be deleted */
/* Description of MDT */
struct lod_tgt_descs lod_mdt_descs;
+ /* Recovery thread for lod_child */
+ struct ptlrpc_thread lod_child_recovery_thread;
+
/* maximum EA size underlied OSD may have */
unsigned int lod_osd_max_easize;
struct lu_name lti_name;
struct lu_buf lti_linkea_buf;
struct dt_insert_rec lti_dt_rec;
+ struct llog_catid lti_cid;
};
extern const struct lu_device_operations lod_lu_ops;
if ((__dev)->lod_osts_size > 0) \
cfs_foreach_bit((__dev)->lod_ost_bitmap, (index))
+#define lod_foreach_mdt(mdt_dev, index) \
+ cfs_foreach_bit((mdt_dev)->lod_mdt_bitmap, (index))
+
/* lod_dev.c */
extern struct kmem_cache *lod_object_kmem;
int lod_fld_lookup(const struct lu_env *env, struct lod_device *lod,
const struct lu_fid *fid, __u32 *tgt, int *flags);
+int lod_sub_init_llog(const struct lu_env *env, struct lod_device *lod,
+ struct dt_device *dt);
+void lod_sub_fini_llog(const struct lu_env *env,
+ struct dt_device *dt, struct ptlrpc_thread *thread);
/* lod_lov.c */
void lod_getref(struct lod_tgt_descs *ltd);
void lod_putref(struct lod_device *lod, struct lod_tgt_descs *ltd);
struct thandle *th);
int lod_sub_object_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);
#endif