From 4950f42fb6286f4cf5e6092593acabde76a8f093 Mon Sep 17 00:00:00 2001 From: Lai Siyao Date: Fri, 26 Dec 2014 22:15:35 +0800 Subject: [PATCH] LU-5914 lfsck: dt_lookup() LBUG This patch contains two fixes: 1. object can be remote in lfsck_namespace_rebuild_linkea(), remove assert on this. 2. initialize dt_index_ops for parent in l_n_verify_stripe_slave() before dt_lookup() on it. Signed-off-by: Lai Siyao Change-Id: I0755f471470cc0805db222640bba1d04f4128388 Reviewed-on: http://review.whamcloud.com/13188 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Fan Yong Reviewed-by: Alex Zhuravlev Reviewed-by: Oleg Drokin --- lustre/lfsck/lfsck_namespace.c | 2 -- lustre/lfsck/lfsck_striped_dir.c | 3 +++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lustre/lfsck/lfsck_namespace.c b/lustre/lfsck/lfsck_namespace.c index c67e5fc..8352fb7 100644 --- a/lustre/lfsck/lfsck_namespace.c +++ b/lustre/lfsck/lfsck_namespace.c @@ -1973,8 +1973,6 @@ int lfsck_namespace_rebuild_linkea(const struct lu_env *env, int rc = 0; ENTRY; - LASSERT(!dt_object_remote(obj)); - th = dt_trans_create(env, dev); if (IS_ERR(th)) GOTO(log, rc = PTR_ERR(th)); diff --git a/lustre/lfsck/lfsck_striped_dir.c b/lustre/lfsck/lfsck_striped_dir.c index b0103df..6b3f69d 100644 --- a/lustre/lfsck/lfsck_striped_dir.c +++ b/lustre/lfsck/lfsck_striped_dir.c @@ -1728,6 +1728,9 @@ int lfsck_namespace_verify_stripe_slave(const struct lu_env *env, GOTO(out, rc); } + if (unlikely(!dt_try_as_dir(env, parent))) + GOTO(out, rc = -ENOTDIR); + rc = lfsck_read_stripe_lmv(env, parent, plmv); if (rc != 0) { int rc1; -- 1.8.3.1