Whamcloud - gitweb
LU-14119 lfsck: replace dt_lookup() with dt_lookup_dir()
[fs/lustre-release.git] / lustre / lfsck / lfsck_lib.c
index 01ea411..93ca2a2 100644 (file)
@@ -1056,8 +1056,7 @@ static int lfsck_create_lpf(const struct lu_env *env,
                 * created the .lustre/lost+found/MDTxxxx but failed to update
                 * the lfsck_bookmark::lb_lpf_fid successfully. So need lookup
                 * it from MDT0 firstly. */
-               rc = dt_lookup(env, parent, (struct dt_rec *)cfid,
-                              (const struct dt_key *)name);
+               rc = dt_lookup_dir(env, parent, name, cfid);
                if (rc != 0 && rc != -ENOENT)
                        GOTO(unlock, rc);
 
@@ -1265,8 +1264,7 @@ static int lfsck_verify_lpf_pairs(const struct lu_env *env,
        ENTRY;
 
        fid_zero(fid);
-       rc = dt_lookup(env, child, (struct dt_rec *)fid,
-                      (const struct dt_key *)dotdot);
+       rc = dt_lookup_dir(env, child, dotdot, fid);
        if (rc != 0)
                GOTO(linkea, rc);
 
@@ -1351,8 +1349,7 @@ linkea:
                GOTO(out_done, rc = 1);
        }
 
-       rc = dt_lookup(env, parent2, (struct dt_rec *)fid,
-                      (const struct dt_key *)name2);
+       rc = dt_lookup_dir(env, parent2, name2, fid);
        dt_read_unlock(env, child);
        lfsck_ibits_unlock(&lh, LCK_PR);
        if (rc != 0 && rc != -ENOENT)
@@ -1469,8 +1466,7 @@ int lfsck_verify_lpf(const struct lu_env *env, struct lfsck_instance *lfsck)
 
        /* child2 */
        snprintf(name, 8, "MDT%04x", node);
-       rc = dt_lookup(env, parent, (struct dt_rec *)cfid,
-                      (const struct dt_key *)name);
+       rc = dt_lookup_dir(env, parent, name, cfid);
        if (rc == -ENOENT) {
                rc = 0;
                goto find_child1;
@@ -3712,9 +3708,6 @@ int lfsck_register(const struct lu_env *env, struct dt_device *key,
        if (IS_ERR(root))
                GOTO(out, rc = PTR_ERR(root));
 
-       if (unlikely(!dt_try_as_dir(env, root)))
-               GOTO(out, rc = -ENOTDIR);
-
        lfsck->li_local_root_fid = *fid;
        if (master) {
                lfsck->li_master = 1;
@@ -3722,9 +3715,8 @@ int lfsck_register(const struct lu_env *env, struct dt_device *key,
                        struct lu_fid *pfid = &lfsck_env_info(env)->lti_fid2;
                        const struct lu_name *cname;
 
-                       rc = dt_lookup(env, root,
-                               (struct dt_rec *)(&lfsck->li_global_root_fid),
-                               (const struct dt_key *)"ROOT");
+                       rc = dt_lookup_dir(env, root, "ROOT",
+                                          &lfsck->li_global_root_fid);
                        if (rc != 0)
                                GOTO(out, rc);
 
@@ -3732,11 +3724,7 @@ int lfsck_register(const struct lu_env *env, struct dt_device *key,
                        if (IS_ERR(obj))
                                GOTO(out, rc = PTR_ERR(obj));
 
-                       if (unlikely(!dt_try_as_dir(env, obj)))
-                               GOTO(out, rc = -ENOTDIR);
-
-                       rc = dt_lookup(env, obj, (struct dt_rec *)fid,
-                               (const struct dt_key *)dotlustre);
+                       rc = dt_lookup_dir(env, obj, dotlustre, fid);
                        if (rc != 0)
                                GOTO(out, rc);
 
@@ -3756,8 +3744,7 @@ int lfsck_register(const struct lu_env *env, struct dt_device *key,
                                GOTO(out, rc = -ENOTDIR);
 
                        *pfid = *fid;
-                       rc = dt_lookup(env, obj, (struct dt_rec *)fid,
-                                      (const struct dt_key *)lostfound);
+                       rc = dt_lookup_dir(env, obj, lostfound, fid);
                        if (rc != 0)
                                GOTO(out, rc);