Whamcloud - gitweb
LU-4972 lfsck: skip .lustre and children for namespace check
[fs/lustre-release.git] / lustre / lfsck / lfsck_lib.c
index 1f85e1a..891becc 100644 (file)
@@ -1116,8 +1116,8 @@ static int lfsck_needs_scan_dir(const struct lu_env *env,
                        return 1;
                }
 
-               /* .lustre doesn't contain "real" user objects, no need lfsck */
-               if (fid_is_dot_lustre(lfsck_dto2fid(obj))) {
+               /* No need to check .lustre and its children. */
+               if (fid_seq_is_dot_lustre(fid_seq(lfsck_dto2fid(obj)))) {
                        if (depth > 0)
                                lfsck_object_put(env, obj);
                        return 0;
@@ -1167,10 +1167,16 @@ static int lfsck_needs_scan_dir(const struct lu_env *env,
                        return 0;
                }
 
-               /* Currently, only client visible directory can be remote. */
                if (dt_object_remote(obj)) {
+                       /* .lustre/lost+found/MDTxxx can be remote directory. */
+                       if (fid_seq_is_dot_lustre(fid_seq(lfsck_dto2fid(obj))))
+                               rc = 0;
+                       else
+                               /* Other remote directory should be client
+                                * visible and need to be checked. */
+                               rc = 1;
                        lfsck_object_put(env, obj);
-                       return 1;
+                       return rc;
                }
 
                depth++;