From 5bae33a95e6330af35e9749356f31a7569ec1e09 Mon Sep 17 00:00:00 2001 From: Fan Yong Date: Mon, 24 Nov 2014 12:08:30 +0800 Subject: [PATCH] LU-5914 lfsck: dt_index_try before dt_lookup Otherwise it may cause dt_lookup() LBUG when locate the parent directory MDT-object that is not in cache. Signed-off-by: Fan Yong Change-Id: Ibbed865e58d8f9a4d4b67265b02ba804efb9719e Reviewed-on: http://review.whamcloud.com/13801 Reviewed-by: Alex Zhuravlev Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Cliff White Reviewed-by: Andreas Dilger --- lustre/lfsck/lfsck_namespace.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lustre/lfsck/lfsck_namespace.c b/lustre/lfsck/lfsck_namespace.c index 529b5d1..72b05d5 100644 --- a/lustre/lfsck/lfsck_namespace.c +++ b/lustre/lfsck/lfsck_namespace.c @@ -4962,6 +4962,9 @@ static int lfsck_namespace_assistant_handler_p1(const struct lu_env *env, if (unlikely(lfsck_is_dead_obj(dir))) GOTO(put_dir, rc = 0); + if (unlikely(!dt_try_as_dir(env, dir))) + GOTO(put_dir, rc = -ENOTDIR); + pfid = lfsck_dto2fid(dir); la->la_nlink = 0; if (lnr->lnr_attr & LUDA_UPGRADE) { -- 1.8.3.1