Whamcloud - gitweb
LU-8301 lfsck: handle ROOT fid properly
[fs/lustre-release.git] / lustre / lfsck / lfsck_lib.c
index 3ac83ac..e3be947 100644 (file)
@@ -32,7 +32,7 @@
 
 #include <linux/kthread.h>
 #include <linux/sched.h>
-#include <libcfs/list.h>
+#include <linux/list.h>
 #include <lu_object.h>
 #include <dt_object.h>
 #include <md_object.h>
@@ -531,6 +531,14 @@ int lfsck_find_mdt_idx_by_fid(const struct lu_env *env,
        struct lu_seq_range     *range  = &lfsck_env_info(env)->lti_range;
        int                      rc;
 
+       if (unlikely(fid_seq(fid) == FID_SEQ_LOCAL_FILE)) {
+               /* "ROOT" is always on the MDT0. */
+               if (lu_fid_eq(fid, &lfsck->li_global_root_fid))
+                       return 0;
+
+               return lfsck_dev_idx(lfsck);
+       }
+
        fld_range_set_mdt(range);
        rc = fld_server_lookup(env, ss->ss_server_fld, fid_seq(fid), range);
        if (rc == 0)
@@ -1034,7 +1042,7 @@ static int lfsck_create_lpf(const struct lu_env *env,
                *cfid = bk->lb_lpf_fid;
        }
 
-       child = lfsck_object_find_bottom(env, lfsck, cfid);
+       child = lfsck_object_find_bottom_new(env, lfsck, cfid);
        if (IS_ERR(child))
                GOTO(unlock, rc = PTR_ERR(child));
 
@@ -1770,8 +1778,8 @@ void lfsck_time_dump(struct seq_file *m, __u64 time, const char *name)
                seq_printf(m, "%s_time: N/A\n", name);
                seq_printf(m, "time_since_%s: N/A\n", name);
        } else {
-               seq_printf(m, "%s_time: "LPU64"\n", name, time);
-               seq_printf(m, "time_since_%s: "LPU64" seconds\n",
+               seq_printf(m, "%s_time: %llu\n", name, time);
+               seq_printf(m, "time_since_%s: %llu seconds\n",
                           name, cfs_time_current_sec() - time);
        }
 }
@@ -1784,10 +1792,10 @@ void lfsck_pos_dump(struct seq_file *m, struct lfsck_position *pos,
                        seq_printf(m, "%s: N/A, N/A, N/A\n", prefix);
                        return;
                }
-               seq_printf(m, "%s: "LPU64", N/A, N/A\n",
+               seq_printf(m, "%s: %llu, N/A, N/A\n",
                           prefix, pos->lp_oit_cookie);
        } else {
-               seq_printf(m, "%s: "LPU64", "DFID", "LPX64"\n",
+               seq_printf(m, "%s: %llu, "DFID", %#llx\n",
                           prefix, pos->lp_oit_cookie,
                           PFID(&pos->lp_dir_parent), pos->lp_dir_cookie);
        }