Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LU-5223 lmv: build master LMV EA dynamically build via readdir
[fs/lustre-release.git]
/
lustre
/
lod
/
lod_internal.h
diff --git
a/lustre/lod/lod_internal.h
b/lustre/lod/lod_internal.h
index
c3b1bc3
..
7d9b95f
100644
(file)
--- a/
lustre/lod/lod_internal.h
+++ b/
lustre/lod/lod_internal.h
@@
-158,7
+158,8
@@
struct lod_device {
spinlock_t lod_connects_lock;
int lod_connects;
unsigned int lod_recovery_completed:1,
spinlock_t lod_connects_lock;
int lod_connects;
unsigned int lod_recovery_completed:1,
- lod_initialized:1;
+ lod_initialized:1,
+ lod_lmv_failout:1;
/* lov settings descriptor storing static information */
struct lov_desc lod_desc;
/* lov settings descriptor storing static information */
struct lov_desc lod_desc;
@@
-260,6
+261,9
@@
struct lod_object {
struct lod_it {
struct dt_object *lit_obj; /* object from the layer below */
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 dt_it *lit_it; /* iterator from the layer below */
};
@@
-275,6
+279,11
@@
struct lod_thread_info {
struct lu_attr lti_attr;
struct lod_it lti_it;
struct ldlm_res_id lti_res_id;
struct lu_attr lti_attr;
struct lod_it lti_it;
struct ldlm_res_id lti_res_id;
+ /* used to hold lu_dirent, sizeof(struct lu_dirent) + NAME_MAX */
+ char lti_key[sizeof(struct lu_dirent) + NAME_MAX];
+ struct dt_object_format lti_format;
+ struct lu_name lti_name;
+ struct lu_buf lti_linkea_buf;
};
extern const struct lu_device_operations lod_lu_ops;
};
extern const struct lu_device_operations lod_lu_ops;
@@
-350,6
+359,17
@@
static inline struct lod_thread_info *lod_env_info(const struct lu_env *env)
return info;
}
return info;
}
+static inline struct lu_name *
+lod_name_get(const struct lu_env *env, const void *area, int len)
+{
+ struct lu_name *lname;
+
+ lname = &lod_env_info(env)->lti_name;
+ lname->ln_name = area;
+ lname->ln_namelen = len;
+ return lname;
+}
+
#define lod_foreach_ost(__dev, index) \
if ((__dev)->lod_osts_size > 0) \
cfs_foreach_bit((__dev)->lod_ost_bitmap, (index))
#define lod_foreach_ost(__dev, index) \
if ((__dev)->lod_osts_size > 0) \
cfs_foreach_bit((__dev)->lod_ost_bitmap, (index))
@@
-368,7
+388,8
@@
int lod_del_device(const struct lu_env *env, struct lod_device *lod,
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);
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);
int lod_get_ea(const struct lu_env *env, struct lod_object *lo,
const char *name);
@@
-405,7
+426,8
@@
int lod_initialize_objects(const struct lu_env *env, struct lod_object *mo,
struct lov_ost_data_v1 *objs);
int lod_store_def_striping(const struct lu_env *env, struct dt_object *dt,
struct thandle *th);
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 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);
@@
-432,11
+454,12
@@
int qos_add_tgt(struct lod_device*, struct lod_tgt_desc *);
int qos_del_tgt(struct lod_device *, struct lod_tgt_desc *);
/* lproc_lod.c */
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);
/* lod_object.c */
int lod_procfs_init(struct lod_device *lod);
void lod_procfs_fini(struct lod_device *lod);
/* lod_object.c */
+int lod_load_lmv_shards(const struct lu_env *env, struct lod_object *lo,
+ struct lu_buf *buf, bool resize);
int lod_object_set_pool(struct lod_object *o, char *pool);
int lod_declare_striped_object(const struct lu_env *env, struct dt_object *dt,
struct lu_attr *attr,
int lod_object_set_pool(struct lod_object *o, char *pool);
int lod_declare_striped_object(const struct lu_env *env, struct dt_object *dt,
struct lu_attr *attr,