X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fmdd%2Fmdd_internal.h;h=36bede947e1aa949198994e073db47202eb2aa60;hb=69efa174743f5ad2425c0ccd951961ae356fed0d;hp=246951ebc0edf9f4f99f8f93e6a39a3c171d8712;hpb=23f8974880657c5c806a5abc900b40b9902846c8;p=fs%2Flustre-release.git diff --git a/lustre/mdd/mdd_internal.h b/lustre/mdd/mdd_internal.h index 246951e..36bede9 100644 --- a/lustre/mdd/mdd_internal.h +++ b/lustre/mdd/mdd_internal.h @@ -41,8 +41,6 @@ #ifndef _MDD_INTERNAL_H #define _MDD_INTERNAL_H -#include - #include #include #include @@ -50,7 +48,6 @@ #include #include #include -#include #ifdef HAVE_QUOTA_SUPPORT # include #endif @@ -107,7 +104,6 @@ struct mdd_txn_op_descr { struct mdd_changelog { cfs_spinlock_t mc_lock; /* for index */ - cfs_waitq_t mc_waitq; int mc_flags; int mc_mask; __u64 mc_index; @@ -167,7 +163,9 @@ struct mdd_object { __u32 mod_valid; __u64 mod_cltime; unsigned long mod_flags; +#ifndef MDD_DISABLE_PDO_LOCK struct dynlock mod_pdlock; +#endif #ifdef CONFIG_LOCKDEP /* "dep_map" name is assumed by lockdep.h macros. */ struct lockdep_map dep_map; @@ -231,6 +229,11 @@ void mdd_lov_objid_update(struct mdd_device *mdd, struct lov_mds_md *lmm); void mdd_lov_create_finish(const struct lu_env *env, struct mdd_device *mdd, struct lov_mds_md *lmm, int lmm_size, const struct md_op_spec *spec); +int mdd_file_lock(const struct lu_env *env, struct md_object *obj, + struct lov_mds_md *lmm, struct ldlm_extent *extent, + struct lustre_handle *lockh); +int mdd_file_unlock(const struct lu_env *env, struct md_object *obj, + struct lov_mds_md *lmm, struct lustre_handle *lockh); int mdd_get_md(const struct lu_env *env, struct mdd_object *obj, void *md, int *md_size, const char *name); int mdd_get_md_locked(const struct lu_env *env, struct mdd_object *obj, @@ -252,6 +255,8 @@ int mdd_object_kill(const struct lu_env *env, struct mdd_object *obj, struct md_attr *ma); int mdd_iattr_get(const struct lu_env *env, struct mdd_object *mdd_obj, struct md_attr *ma); +int mdd_attr_get_internal(const struct lu_env *env, struct mdd_object *mdd_obj, + struct md_attr *ma); int mdd_attr_get_internal_locked(const struct lu_env *env, struct mdd_object *mdd_obj, struct md_attr *ma); @@ -278,18 +283,14 @@ int mdd_write_locked(const struct lu_env *env, struct mdd_object *obj); void mdd_pdlock_init(struct mdd_object *obj); unsigned long mdd_name2hash(const char *name); -struct dynlock_handle *mdd_pdo_write_lock(const struct lu_env *env, - struct mdd_object *obj, - const char *name, - enum mdd_object_role role); -struct dynlock_handle *mdd_pdo_read_lock(const struct lu_env *env, - struct mdd_object *obj, - const char *name, - enum mdd_object_role role); +void *mdd_pdo_write_lock(const struct lu_env *env, struct mdd_object *obj, + const char *name, enum mdd_object_role role); +void *mdd_pdo_read_lock(const struct lu_env *env, struct mdd_object *obj, + const char *name, enum mdd_object_role role); void mdd_pdo_write_unlock(const struct lu_env *env, struct mdd_object *obj, - struct dynlock_handle *dlh); + void *dlh); void mdd_pdo_read_unlock(const struct lu_env *env, struct mdd_object *obj, - struct dynlock_handle *dlh); + void *dlh); /* mdd_dir.c */ int mdd_is_subdir(const struct lu_env *env, struct md_object *mo, const struct lu_fid *fid, struct lu_fid *sfid); @@ -381,7 +382,8 @@ struct mdd_object *mdd_object_find(const struct lu_env *env, int mdd_get_default_md(struct mdd_object *mdd_obj, struct lov_mds_md *lmm); int mdd_readpage(const struct lu_env *env, struct md_object *obj, const struct lu_rdpg *rdpg); - +int mdd_changelog(const struct lu_env *env, enum changelog_rec_type type, + int flags, struct md_object *obj); /* mdd_quota.c*/ #ifdef HAVE_QUOTA_SUPPORT int mdd_quota_notify(const struct lu_env *env, struct md_device *m);