com->lc_obj = obj;
rc = lfsck_layout_load(env, com);
- if (rc > 0)
+ if (rc > 0) {
rc = lfsck_layout_reset(env, com, true);
- else if (rc == -ENOENT)
+ } else if (rc == -ENOENT) {
rc = lfsck_layout_init(env, com);
- else if (lfsck->li_master)
+ } else if (lfsck->li_master) {
rc = lfsck_load_sub_trace_files(env, com,
&dt_lfsck_layout_dangling_features,
LFSCK_LAYOUT, false);
+ if (rc)
+ rc = lfsck_layout_reset(env, com, true);
+ }
if (rc != 0)
GOTO(out, rc);
RETURN(PTR_ERR(obj));
rc = obj->do_ops->do_index_try(env, obj, ft);
- if (rc)
+ if (rc) {
lfsck_object_put(env, obj);
- else
+ CDEBUG(D_LFSCK, "%s: LFSCK fail to load "
+ "sub trace file %s: rc = %d\n",
+ lfsck_lfsck2name(com->lc_lfsck), name, rc);
+ } else {
*child = obj;
+ }
RETURN(rc);
}
com->lc_obj = obj;
rc = lfsck_namespace_load(env, com);
- if (rc == -ENODATA)
+ if (rc == -ENODATA) {
rc = lfsck_namespace_init(env, com);
- else if (rc < 0)
+ } else if (rc < 0) {
rc = lfsck_namespace_reset(env, com, true);
- else
+ } else {
rc = lfsck_load_sub_trace_files(env, com,
&dt_lfsck_namespace_features, LFSCK_NAMESPACE, false);
+ if (rc)
+ rc = lfsck_namespace_reset(env, com, true);
+ }
if (rc != 0)
GOTO(out, rc);