X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Flmv%2Flmv_internal.h;h=9f0ec1dde2896de00e31408c6a81bd53518d9ba1;hb=8f27184b14a192848429e52ac234805c324e1f7a;hp=60ed76fb62f39c5ca105518e42b696fd4dfbc55c;hpb=784b028e1c4564f6e6ab99b1ee765b5e4797b6c4;p=fs%2Flustre-release.git diff --git a/lustre/lmv/lmv_internal.h b/lustre/lmv/lmv_internal.h index 60ed76f..9f0ec1d 100644 --- a/lustre/lmv/lmv_internal.h +++ b/lustre/lmv/lmv_internal.h @@ -27,7 +27,7 @@ * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. * - * Copyright (c) 2011, 2013, Intel Corporation. + * Copyright (c) 2011, 2014, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -43,9 +43,6 @@ #define LMV_MAX_TGT_COUNT 128 -#define lmv_init_lock(lmv) mutex_lock(&lmv->init_mutex); -#define lmv_init_unlock(lmv) mutex_unlock(&lmv->init_mutex); - #define LL_IT2STR(it) \ ((it) ? ldlm_it2str((it)->it_op) : "0") @@ -58,23 +55,23 @@ int lmv_intent_lock(struct obd_export *exp, struct md_op_data *op_data, int lmv_blocking_ast(struct ldlm_lock *, struct ldlm_lock_desc *, void *, int); -int lmv_fld_lookup(struct lmv_obd *lmv, const struct lu_fid *fid, - mdsno_t *mds); -int __lmv_fid_alloc(struct lmv_obd *lmv, struct lu_fid *fid, - mdsno_t mds); +int lmv_fld_lookup(struct lmv_obd *lmv, const struct lu_fid *fid, u32 *mds); +int __lmv_fid_alloc(struct lmv_obd *lmv, struct lu_fid *fid, u32 mds); int lmv_fid_alloc(const struct lu_env *env, struct obd_export *exp, struct lu_fid *fid, struct md_op_data *op_data); -int lmv_unpack_md(struct obd_export *exp, struct lmv_stripe_md **lsmp, - const union lmv_mds_md *lmm, int stripe_count); - -int lmv_revalidate_slaves(struct obd_export *exp, struct mdt_body *mbody, - struct lmv_stripe_md *lsm, +int lmv_revalidate_slaves(struct obd_export *exp, + const struct lmv_stripe_md *lsm, ldlm_blocking_callback cb_blocking, int extra_lock_flags); +static inline struct obd_device *lmv2obd_dev(struct lmv_obd *lmv) +{ + return container_of0(lmv, struct obd_device, u.lmv); +} + static inline struct lmv_tgt_desc * -lmv_get_target(struct lmv_obd *lmv, mdsno_t mdt_idx, int *index) +lmv_get_target(struct lmv_obd *lmv, u32 mdt_idx, int *index) { int i; @@ -96,7 +93,7 @@ static inline int lmv_find_target_index(struct lmv_obd *lmv, const struct lu_fid *fid) { struct lmv_tgt_desc *ltd; - mdsno_t mdt_idx = 0; + u32 mdt_idx = 0; int index = 0; if (lmv->desc.ld_tgt_count > 1) { @@ -132,10 +129,6 @@ static inline int lmv_stripe_md_size(int stripe_count) return sizeof(*lsm) + stripe_count * sizeof(lsm->lsm_md_oinfo[0]); } -int lmv_name_to_stripe_index(enum lmv_hash_type hashtype, - unsigned int max_mdt_index, - const char *name, int namelen); - static inline const struct lmv_oinfo * lsm_name_to_stripe_info(const struct lmv_stripe_md *lsm, const char *name, int namelen) @@ -156,13 +149,18 @@ lsm_name_to_stripe_info(const struct lmv_stripe_md *lsm, const char *name, return &lsm->lsm_md_oinfo[stripe_index]; } +static inline bool lmv_need_try_all_stripes(const struct lmv_stripe_md *lsm) +{ + return !lmv_is_known_hash_type(lsm->lsm_md_hash_type) || + lsm->lsm_md_hash_type & LMV_HASH_FLAG_MIGRATION; +} struct lmv_tgt_desc *lmv_locate_mds(struct lmv_obd *lmv, struct md_op_data *op_data, struct lu_fid *fid); /* lproc_lmv.c */ -#ifdef LPROCFS -extern struct lprocfs_seq_vars lprocfs_lmv_obd_vars[]; +#ifdef CONFIG_PROC_FS +extern struct lprocfs_vars lprocfs_lmv_obd_vars[]; #endif extern struct file_operations lmv_proc_target_fops;