X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Fdt_object.h;h=e76defa958d0577aff00291b16bae78fabb588f7;hb=3ac7c325efaf3a2537fafc79168d87de67982acd;hp=a16c981d8634bd298daa9cdfe2bfe0dbde89a3f6;hpb=e1a430be4a4a08e39b945a35a04c8286353fb6fc;p=fs%2Flustre-release.git diff --git a/lustre/include/dt_object.h b/lustre/include/dt_object.h index a16c981..e76defa 100644 --- a/lustre/include/dt_object.h +++ b/lustre/include/dt_object.h @@ -65,7 +65,6 @@ struct thandle; struct dt_device; struct dt_object; struct dt_index_features; -struct dt_quota_ctxt; struct niobuf_local; struct niobuf_remote; @@ -174,12 +173,6 @@ struct dt_device_operations { struct dt_device *dev, int mode, unsigned long timeout, __u32 alg, struct lustre_capa_key *keys); - /** - * Initialize quota context. - */ - void (*dt_init_quota_ctxt)(const struct lu_env *env, - struct dt_device *dev, - struct dt_quota_ctxt *ctxt, void *data); }; struct dt_index_features { @@ -262,6 +255,7 @@ struct dt_object_format { enum dt_format_type dof_type; union { struct dof_regular { + int striped; } dof_reg; struct dof_dir { } dof_dir; @@ -688,7 +682,7 @@ struct local_oid_storage { struct dt_object *los_obj; /* data used to generate new fids */ - cfs_mutex_t los_id_lock; + struct mutex los_id_lock; __u64 los_seq; __u32 los_last_oid; }; @@ -843,6 +837,19 @@ struct dt_object *local_file_find_or_create_with_fid(const struct lu_env *env, struct dt_object *parent, const char *name, __u32 mode); +struct dt_object * +local_index_find_or_create(const struct lu_env *env, + struct local_oid_storage *los, + struct dt_object *parent, + const char *name, __u32 mode, + const struct dt_index_features *ft); +struct dt_object * +local_index_find_or_create_with_fid(const struct lu_env *env, + struct dt_device *dt, + const struct lu_fid *fid, + struct dt_object *parent, + const char *name, __u32 mode, + const struct dt_index_features *ft); int dt_lookup_dir(const struct lu_env *env, struct dt_object *dir, const char *name, struct lu_fid *fid); @@ -869,6 +876,15 @@ int dt_record_read(const struct lu_env *env, struct dt_object *dt, struct lu_buf *buf, loff_t *pos); int dt_record_write(const struct lu_env *env, struct dt_object *dt, const struct lu_buf *buf, loff_t *pos, struct thandle *th); +typedef int (*dt_index_page_build_t)(const struct lu_env *env, + union lu_page *lp, int nob, + const struct dt_it_ops *iops, + struct dt_it *it, __u32 attr, void *arg); +int dt_index_walk(const struct lu_env *env, struct dt_object *obj, + const struct lu_rdpg *rdpg, dt_index_page_build_t filler, + void *arg); +int dt_index_read(const struct lu_env *env, struct dt_device *dev, + struct idx_info *ii, const struct lu_rdpg *rdpg); static inline struct thandle *dt_trans_create(const struct lu_env *env, struct dt_device *d) @@ -1353,6 +1369,18 @@ static inline int dt_commit_async(const struct lu_env *env, return dev->dd_ops->dt_commit_async(env, dev); } +static inline int dt_init_capa_ctxt(const struct lu_env *env, + struct dt_device *dev, + int mode, unsigned long timeout, + __u32 alg, struct lustre_capa_key *keys) +{ + LASSERT(dev); + LASSERT(dev->dd_ops); + LASSERT(dev->dd_ops->dt_init_capa_ctxt); + return dev->dd_ops->dt_init_capa_ctxt(env, dev, mode, + timeout, alg, keys); +} + static inline int dt_lookup(const struct lu_env *env, struct dt_object *dt, struct dt_rec *rec,