diff --git a/lustre/lmv/lmv_obd.c b/lustre/lmv/lmv_obd.c index 3091bfb..79442a8 100644 --- a/lustre/lmv/lmv_obd.c +++ b/lustre/lmv/lmv_obd.c @@ -2405,6 +2405,7 @@ static int lmv_get_info(const struct lu_env *env, struct obd_export *exp, struct obd_device *obd; struct lmv_obd *lmv; int rc = 0; + struct lmv_tgt_desc *tgt; ENTRY; obd = class_exp2obd(exp); @@ -2416,7 +2417,6 @@ static int lmv_get_info(const struct lu_env *env, struct obd_export *exp, lmv = &obd->u.lmv; if (keylen >= strlen("remote_flag") && !strcmp(key, "remote_flag")) { - struct lmv_tgt_desc *tgt; int i; rc = lmv_check_connect(obd); @@ -2438,19 +2438,25 @@ static int lmv_get_info(const struct lu_env *env, struct obd_export *exp, } RETURN(-EINVAL); } else if (KEY_IS(KEY_MAX_EASIZE) || KEY_IS(KEY_CONN_DATA)) { + int i; + rc = lmv_check_connect(obd); if (rc) RETURN(rc); /* - * Forwarding this request to first MDS, it should know LOV - * desc. - */ - rc = obd_get_info(env, lmv->tgts[0]->ltd_exp, keylen, key, + * Forwarding this request to first MDS, it should know LOV + * desc. + */ + for (i = 0; i < lmv->desc.ld_tgt_count; i++) { + tgt = lmv->tgts[i]; + rc = obd_get_info(env, tgt->ltd_exp, keylen, key, vallen, val, NULL); - if (!rc && KEY_IS(KEY_CONN_DATA)) - exp->exp_connect_data = *(struct obd_connect_data *)val; - RETURN(rc); + if (!rc && KEY_IS(KEY_CONN_DATA)) + exp->exp_connect_data = + *(struct obd_connect_data *)val; + RETURN(rc); + } } else if (KEY_IS(KEY_TGT_COUNT)) { *((int *)val) = lmv->desc.ld_tgt_count; RETURN(0);