From b21c6045c6dfffaea932b9632723a7569ebd5ce5 Mon Sep 17 00:00:00 2001 From: "John L. Hammond" Date: Fri, 16 Feb 2018 12:55:05 -0600 Subject: [PATCH] LU-10421 echo: use echo layer when finding stripe object In echo_md_dir_stripe_choose(), find the stripe object using the echo device rather than the down layer (mdd) device. mdd objects are not equipped to be top layer objects and should not be found in this way. Test-Parameters: trivial testlist=mds-survey Lustre-change: https://review.whamcloud.com/31338 Lustre-commit: 6f60a28206b2755a9aa158d82713b73efa09e81b Signed-off-by: John L. Hammond Change-Id: Ibb396ae64b6d542c64697336d227e06163a0bb39 Reviewed-by: Alex Zhuravlev Reviewed-by: Andreas Dilger Reviewed-by: Mike Pershin Signed-off-by: Minh Diep Reviewed-on: https://review.whamcloud.com/31556 Tested-by: Jenkins Tested-by: Maloo --- lustre/obdecho/echo_client.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lustre/obdecho/echo_client.c b/lustre/obdecho/echo_client.c index 1304771..1b558f7 100644 --- a/lustre/obdecho/echo_client.c +++ b/lustre/obdecho/echo_client.c @@ -1660,7 +1660,8 @@ echo_md_dir_stripe_choose(const struct lu_env *env, struct echo_device *ed, LASSERT(idx < le32_to_cpu(lmv->lmv_stripe_count)); fid_le_to_cpu(&stripe_fid, &lmv->lmv_stripe_fids[idx]); - stripe_obj = lu_object_find_at(env, ld, &stripe_fid, NULL); + stripe_obj = lu_object_find_at(env, &ed->ed_cl.cd_lu_dev, &stripe_fid, + NULL); if (IS_ERR(stripe_obj)) { rc = PTR_ERR(stripe_obj); CERROR("Can not find the parent "DFID": rc = %d\n", -- 1.8.3.1