goto checkpoint;
}
- if (dt_object_exists(target))
- rc = lfsck_exec_oit(env, lfsck, target);
+ if (dt_object_exists(target)) {
+ struct lu_attr la = { .la_valid = 0 };
+
+ rc = dt_attr_get(env, target, &la);
+ if (likely(!rc && (!(la.la_valid & LA_FLAGS) ||
+ !(la.la_flags & LUSTRE_ORPHAN_FL))))
+ rc = lfsck_exec_oit(env, lfsck, target);
+ else
+ CDEBUG(D_INFO,
+ "%s: orphan "DFID", %llx/%x: rc = %d\n",
+ lfsck_lfsck2name(lfsck), PFID(fid),
+ la.la_valid, la.la_flags, rc);
+ }
lfsck_object_put(env, target);
if (rc != 0 && bk->lb_param & LPF_FAILOUT)