linkea_add_buf(ldata, lname, tfid);
}
+ if (OBD_FAIL_CHECK(OBD_FAIL_LFSCK_LINKEA_MORE2))
+ linkea_add_buf(ldata, lname, pfid);
+
return linkea_add_buf(ldata, lname, pfid);
}
LASSERT(oldpfid != NULL || newpfid != NULL);
- if (mdd_obj->mod_flags & DEAD_OBJ)
+ if (mdd_obj->mod_flags & DEAD_OBJ) {
+ /* Prevent linkea to be updated which is NOT necessary. */
+ ldata->ld_reclen = 0;
/* No more links, don't bother */
RETURN(0);
+ }
if (oldpfid != NULL) {
rc = __mdd_links_del(env, mdd_obj, ldata, oldlname, oldpfid);
GOTO(out, rc);
}
- if (ldata->ld_lee != NULL)
+ if (ldata->ld_reclen != 0)
rc = mdd_links_write(env, mdd_obj, ldata, handle);
EXIT;
out:
ea_len = ldata->ld_leh->leh_len;
linkea = ldata->ld_buf->lb_buf;
} else {
- ea_len = 4096;
+ ea_len = DEFAULT_LINKEA_SIZE;
linkea = NULL;
}
if (ma->ma_attr.la_nlink == 0 || is_dir) {
obj->mod_flags |= DEAD_OBJ;
+
/* add new orphan and the object
* will be deleted during mdd_close() */
if (obj->mod_count) {