Details
-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
None
-
3
-
9223372036854775807
Description
We missed to handle symbol file when repair MDT-object's nlink as to cause ASSERT() in the following section:
static int lfsck_namespace_repair_nlink(const struct lu_env *env,
struct lfsck_component *com,
struct dt_object *obj,
struct lu_attr *la)
{
struct lfsck_thread_info *info = lfsck_env_info(env);
struct lu_fid *tfid = &info->lti_fid3;
struct lfsck_namespace *ns = com->lc_file_ram;
struct lfsck_instance *lfsck = com->lc_lfsck;
struct dt_device *dev = lfsck_obj2dev(obj);
const struct lu_fid *cfid = lfsck_dto2fid(obj);
struct thandle *th = NULL;
struct linkea_data ldata = { NULL };
struct lustre_handle lh = { 0 };
__u32 old = la->la_nlink;
int idx;
int rc = 0;
__u8 flags;
ENTRY;
LASSERT(!dt_object_remote(obj));
LASSERT(S_ISREG(lfsck_object_type(obj)));
....