*/
LASSERT(lo->ldo_stripe);
for (i = 0; i < lo->ldo_stripenr; i++) {
- LASSERT(lo->ldo_stripe[i]);
-
- rc = dt_declare_attr_set(env, lo->ldo_stripe[i], attr, handle);
- if (rc) {
- CERROR("failed declaration: %d\n", rc);
- break;
+ if (likely(lo->ldo_stripe[i] != NULL)) {
+ rc = dt_declare_attr_set(env, lo->ldo_stripe[i], attr,
+ handle);
+ if (rc != 0) {
+ CERROR("failed declaration: %d\n", rc);
+ break;
+ }
}
}
*/
LASSERT(lo->ldo_stripe);
for (i = 0; i < lo->ldo_stripenr; i++) {
- LASSERT(lo->ldo_stripe[i]);
- if (dt_object_exists(lo->ldo_stripe[i]) == 0)
- continue;
- rc = dt_attr_set(env, lo->ldo_stripe[i], attr, handle, capa);
- if (rc) {
- CERROR("failed declaration: %d\n", rc);
- break;
+ if (likely(lo->ldo_stripe[i] != NULL)) {
+ if (dt_object_exists(lo->ldo_stripe[i]) == 0)
+ continue;
+
+ rc = dt_attr_set(env, lo->ldo_stripe[i], attr,
+ handle, capa);
+ if (rc != 0) {
+ CERROR("failed declaration: %d\n", rc);
+ break;
+ }
}
}
LASSERT(buf != NULL && buf->lb_buf != NULL);
lum = buf->lb_buf;
- rc = lod_verify_striping(d, buf, 0);
+ rc = lod_verify_striping(d, buf, false);
if (rc)
RETURN(rc);
rc = 0;
v1 = info->lti_ea_store;
- if (v1->lmm_magic == __swab32(LOV_USER_MAGIC_V1))
+ if (v1->lmm_magic == __swab32(LOV_USER_MAGIC_V1)) {
lustre_swab_lov_user_md_v1(v1);
- else if (v1->lmm_magic == __swab32(LOV_USER_MAGIC_V3))
+ } else if (v1->lmm_magic == __swab32(LOV_USER_MAGIC_V3)) {
+ v3 = (struct lov_user_md_v3 *)v1;
lustre_swab_lov_user_md_v3(v3);
+ }
if (v1->lmm_magic != LOV_MAGIC_V3 && v1->lmm_magic != LOV_MAGIC_V1)
GOTO(unlock, rc = 0);
if (OBD_FAIL_CHECK(OBD_FAIL_LFSCK_LOST_MDTOBJ))
RETURN(0);
- /* declare destroy for all underlying objects */
+ /* declare destroy all striped objects */
for (i = 0; i < lo->ldo_stripenr; i++) {
- LASSERT(lo->ldo_stripe[i]);
- rc = dt_declare_destroy(env, lo->ldo_stripe[i], th);
- if (rc != 0)
- break;
+ if (likely(lo->ldo_stripe[i] != NULL)) {
+ rc = dt_declare_destroy(env, lo->ldo_stripe[i], th);
+ if (rc != 0)
+ break;
+ }
}
RETURN(rc);
/* destroy all striped objects */
for (i = 0; i < lo->ldo_stripenr; i++) {
- LASSERT(lo->ldo_stripe[i]);
- rc = dt_destroy(env, lo->ldo_stripe[i], th);
- if (rc != 0)
- break;
+ if (likely(lo->ldo_stripe[i] != NULL) &&
+ (!OBD_FAIL_CHECK(OBD_FAIL_LFSCK_LOST_SPEOBJ) ||
+ i == cfs_fail_val)) {
+ rc = dt_destroy(env, lo->ldo_stripe[i], th);
+ if (rc != 0)
+ break;
+ }
}
RETURN(rc);