Details
-
Bug
-
Resolution: Fixed
-
Blocker
-
Lustre 2.4.0
-
3
-
6780
Description
lmv_get_target should find target by checking ltd_idx, instead of return lmv->tgts[mds] directly.
In lmv_find_target, it will return lmv->tgts[mds] according to mdt_index, which is not correct. LMV index is created by mount sequence, while mdt_index by indicated by --index.
static inline struct lmv_tgt_desc *
lmv_get_target(struct lmv_obd *lmv, mdsno_t mds)
{
return &lmv->tgts[mds];
}
static inline struct lmv_tgt_desc *
lmv_find_target(struct lmv_obd *lmv, const struct lu_fid *fid)
{
mdsno_t mds = 0;
int rc;
if (lmv->desc.ld_tgt_count > 1) {
rc = lmv_fld_lookup(lmv, fid, &mds);
if (rc)
return ERR_PTR(rc);
}
return lmv_get_target(lmv, mds);
}