Whamcloud - gitweb
LU-5914 lfsck: dt_index_try before dt_lookup 01/13801/3
authorFan Yong <fan.yong@intel.com>
Mon, 24 Nov 2014 04:08:30 +0000 (12:08 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Fri, 20 Feb 2015 18:41:01 +0000 (18:41 +0000)
Otherwise it may cause dt_lookup() LBUG when locate the parent
directory MDT-object that is not in cache.

Signed-off-by: Fan Yong <fan.yong@intel.com>
Change-Id: Ibbed865e58d8f9a4d4b67265b02ba804efb9719e
Reviewed-on: http://review.whamcloud.com/13801
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Cliff White <cliff.white@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
lustre/lfsck/lfsck_namespace.c

index 529b5d1..72b05d5 100644 (file)
@@ -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) {