return dt_attr_get(env, dt_object_child(dt), attr);
}
+static inline void lod_adjust_stripe_info(struct lod_layout_component *comp,
+ struct lov_desc *desc)
+{
+ if (comp->llc_pattern != LOV_PATTERN_FIRST) {
+ if (!comp->llc_stripe_count)
+ comp->llc_stripe_count =
+ desc->ld_default_stripe_count;
+ }
+ if (comp->llc_stripe_size <= 0)
+ comp->llc_stripe_size = desc->ld_default_stripe_size;
+}
+
int lod_obj_for_each_stripe(const struct lu_env *env, struct lod_object *lo,
struct thandle *th, lod_obj_stripe_cb_t cb,
struct lod_obj_stripe_cb_data *data)
lod_comp->llc_stripe_offset = v1->lmm_stripe_offset;
lod_comp->llc_stripe_count = v1->lmm_stripe_count;
- if (!lod_comp->llc_stripe_count ||
- lod_comp->llc_stripe_count == (__u16)-1)
- lod_comp->llc_stripe_count =
- desc->ld_default_stripe_count;
lod_comp->llc_stripe_size = v1->lmm_stripe_size;
- if (!lod_comp->llc_stripe_size)
- lod_comp->llc_stripe_size =
- desc->ld_default_stripe_size;
+ lod_adjust_stripe_info(lod_comp, desc);
if (v1->lmm_magic == LOV_USER_MAGIC_V3) {
v3 = (struct lov_user_md_v3 *) v1;
if (!lo->ldo_is_composite)
continue;
- if (obj_comp->llc_stripe_count <= 0)
- obj_comp->llc_stripe_count =
- desc->ld_default_stripe_count;
- if (obj_comp->llc_stripe_size <= 0)
- obj_comp->llc_stripe_size =
- desc->ld_default_stripe_size;
+ lod_adjust_stripe_info(obj_comp, desc);
}
} else if (lds->lds_dir_def_striping_set && S_ISDIR(mode)) {
if (lo->ldo_dir_stripe_count == 0)
LASSERT(!lc->ldo_is_composite);
lod_comp = &lc->ldo_comp_entries[0];
desc = &d->lod_desc;
- if (lod_comp->llc_stripe_count <= 0)
- lod_comp->llc_stripe_count =
- desc->ld_default_stripe_count;
- if (lod_comp->llc_stripe_size <= 0)
- lod_comp->llc_stripe_size =
- desc->ld_default_stripe_size;
+ lod_adjust_stripe_info(lod_comp, desc);
}
EXIT;