struct lu_buf slave_lmv_buf;
struct lmv_mds_md_v1 *lmm;
struct lmv_mds_md_v1 *slave_lmm = NULL;
+ struct dt_insert_rec *rec = &info->lti_dt_rec;
int stripe_count;
int *idx_array;
int rc = 0;
if (!dt_try_as_dir(env, dt_object_child(dt)))
GOTO(out_put, rc = -EINVAL);
+ rec->rec_type = S_IFDIR;
for (i = 0; i < lo->ldo_stripenr; i++) {
struct dt_object *dto = stripe[i];
char *stripe_name = info->lti_key;
if (!dt_try_as_dir(env, dto))
GOTO(out_put, rc = -EINVAL);
- rc = dt_declare_insert(env, dto,
- (const struct dt_rec *)lu_object_fid(&dto->do_lu),
- (const struct dt_key *)dot, th);
+ rec->rec_fid = lu_object_fid(&dto->do_lu);
+ rc = dt_declare_insert(env, dto, (const struct dt_rec *)rec,
+ (const struct dt_key *)dot, th);
if (rc != 0)
GOTO(out_put, rc);
/* master stripe FID will be put to .. */
- rc = dt_declare_insert(env, dto,
- (const struct dt_rec *)lu_object_fid(&dt->do_lu),
- (const struct dt_key *)dotdot, th);
+ rec->rec_fid = lu_object_fid(&dt->do_lu);
+ rc = dt_declare_insert(env, dto, (const struct dt_rec *)rec,
+ (const struct dt_key *)dotdot, th);
if (rc != 0)
GOTO(out_put, rc);
if (rc != 0)
GOTO(out_put, rc);
+ rec->rec_fid = lu_object_fid(&dto->do_lu);
rc = dt_declare_insert(env, dt_object_child(dt),
- (const struct dt_rec *)lu_object_fid(&dto->do_lu),
- (const struct dt_key *)stripe_name, th);
+ (const struct dt_rec *)rec,
+ (const struct dt_key *)stripe_name, th);
if (rc != 0)
GOTO(out_put, rc);
struct lu_buf slave_lmv_buf;
struct lmv_mds_md_v1 *lmm;
struct lmv_mds_md_v1 *slave_lmm = NULL;
+ struct dt_insert_rec *rec = &info->lti_dt_rec;
int i;
int rc;
ENTRY;
slave_lmv_buf.lb_buf = slave_lmm;
slave_lmv_buf.lb_len = sizeof(*slave_lmm);
+ rec->rec_type = S_IFDIR;
for (i = 0; i < lo->ldo_stripenr; i++) {
struct dt_object *dto;
char *stripe_name = info->lti_key;
if (rc != 0)
RETURN(rc);
- rc = dt_insert(env, dto,
- (const struct dt_rec *)lu_object_fid(&dto->do_lu),
- (const struct dt_key *)dot, th, capa, 0);
+ rec->rec_fid = lu_object_fid(&dto->do_lu);
+ rc = dt_insert(env, dto, (const struct dt_rec *)rec,
+ (const struct dt_key *)dot, th, capa, 0);
if (rc != 0)
RETURN(rc);
- rc = dt_insert(env, dto,
- (struct dt_rec *)lu_object_fid(&dt->do_lu),
- (const struct dt_key *)dotdot, th, capa, 0);
+ rec->rec_fid = lu_object_fid(&dt->do_lu);
+ rc = dt_insert(env, dto, (struct dt_rec *)rec,
+ (const struct dt_key *)dotdot, th, capa, 0);
if (rc != 0)
RETURN(rc);
if (rc != 0)
GOTO(out, rc);
+ rec->rec_fid = lu_object_fid(&dto->do_lu);
rc = dt_insert(env, dt_object_child(dt),
- (const struct dt_rec *)lu_object_fid(&dto->do_lu),
- (const struct dt_key *)stripe_name, th, capa, 0);
+ (const struct dt_rec *)rec,
+ (const struct dt_key *)stripe_name, th, capa, 0);
if (rc != 0)
GOTO(out, rc);