__u16 ldo_def_stripenr;
__u16 ldo_def_stripe_offset;
struct lod_dir_stripe_info *ldo_dir_stripe;
- mdsno_t ldo_mds_num;
};
#define ldo_dir_stripe_offset ldo_dir_stripe->ldsi_stripe_offset
struct lod_it {
struct dt_object *lit_obj; /* object from the layer below */
+ /* stripe offset of iteration */
+ __u32 lit_stripe_index;
+ __u32 lit_attr;
struct dt_it *lit_it; /* iterator from the layer below */
};
struct obd_statfs lti_osfs;
struct lu_attr lti_attr;
struct lod_it lti_it;
+ struct ldlm_res_id lti_res_id;
+
+ /* used to hold lu_dirent, NAME_MAX + sizeof(struct lu_dirent) */
+ char lti_key[NAME_MAX + sizeof(struct lu_dirent)];
+
+ struct dt_object_format lti_format;
};
extern const struct lu_device_operations lod_lu_ops;
/* lod_dev.c */
int lod_fld_lookup(const struct lu_env *env, struct lod_device *lod,
- const struct lu_fid *fid, mdsno_t *tgt, int flags);
+ const struct lu_fid *fid, __u32 *tgt, int *flags);
/* lod_lov.c */
void lod_getref(struct lod_tgt_descs *ltd);
void lod_putref(struct lod_device *lod, struct lod_tgt_descs *ltd);
unsigned gen, bool for_ost);
int lod_fini_tgt(const struct lu_env *env, struct lod_device *lod,
struct lod_tgt_descs *ltd, bool for_ost);
-int lod_load_striping(const struct lu_env *env, struct lod_object *mo);
+int lod_load_striping_locked(const struct lu_env *env, struct lod_object *lo);
+int lod_load_striping(const struct lu_env *env, struct lod_object *lo);
int lod_get_ea(const struct lu_env *env, struct lod_object *lo,
const char *name);
static inline int
lod_get_default_lmv_ea(const struct lu_env *env, struct lod_object *lo)
{
- return lod_get_ea(env, lo, XATTR_NAME_DEFALT_LMV);
+ return lod_get_ea(env, lo, XATTR_NAME_DEFAULT_LMV);
}
void lod_fix_desc(struct lov_desc *desc);
struct lov_ost_data_v1 *objs);
int lod_store_def_striping(const struct lu_env *env, struct dt_object *dt,
struct thandle *th);
-int lod_verify_striping(struct lod_device *d, const struct lu_buf *buf, int specific);
+int lod_verify_striping(struct lod_device *d, const struct lu_buf *buf,
+ bool is_from_disk);
int lod_generate_and_set_lovea(const struct lu_env *env,
struct lod_object *mo, struct thandle *th);
int lod_ea_store_resize(struct lod_thread_info *info, int size);
int qos_del_tgt(struct lod_device *, struct lod_tgt_desc *);
/* lproc_lod.c */
-void lprocfs_lod_init_vars(struct lprocfs_static_vars *lvars);
int lod_procfs_init(struct lod_device *lod);
void lod_procfs_fini(struct lod_device *lod);