LA_CTIME | LA_MTIME | LA_ATIME;
memset(&sp->u, 0, sizeof(sp->u));
sp->sp_cr_flags = get_mrc_cr_flags(rec);
- sp->sp_ck_split = !!(rec->cr_bias & MDS_CHECK_SPLIT);
- info->mti_cross_ref = !!(rec->cr_bias & MDS_CROSS_REF);
if (req_capsule_get_size(pill, &RMF_CAPA1, RCL_CLIENT))
mdt_set_capainfo(info, 0, rr->rr_fid1,
req_capsule_client_get(pill, &RMF_CAPA1));
mdt_set_capainfo(info, 1, rr->rr_fid2, BYPASS_CAPA);
- if (!info->mti_cross_ref) {
- rr->rr_name = req_capsule_client_get(pill, &RMF_NAME);
- rr->rr_namelen = req_capsule_get_size(pill, &RMF_NAME,
- RCL_CLIENT) - 1;
- LASSERT(rr->rr_name && rr->rr_namelen > 0);
- } else {
- rr->rr_name = NULL;
- rr->rr_namelen = 0;
- }
+ rr->rr_name = req_capsule_client_get(pill, &RMF_NAME);
+ rr->rr_namelen = req_capsule_get_size(pill, &RMF_NAME,
+ RCL_CLIENT) - 1;
+ LASSERT(rr->rr_name && rr->rr_namelen > 0);
-#ifdef CONFIG_FS_POSIX_ACL
- if (sp->sp_cr_flags & MDS_CREATE_RMT_ACL) {
- if (S_ISDIR(attr->la_mode))
- sp->u.sp_pfid = rr->rr_fid1;
- req_capsule_extend(pill, &RQF_MDS_REINT_CREATE_RMT_ACL);
- LASSERT(req_capsule_field_present(pill, &RMF_EADATA,
- RCL_CLIENT));
- rr->rr_eadata = req_capsule_client_get(pill, &RMF_EADATA);
- rr->rr_eadatalen = req_capsule_get_size(pill, &RMF_EADATA,
- RCL_CLIENT);
- sp->u.sp_ea.eadata = rr->rr_eadata;
- sp->u.sp_ea.eadatalen = rr->rr_eadatalen;
- sp->u.sp_ea.fid = rr->rr_fid1;
- RETURN(0);
- }
-#endif
- if (S_ISDIR(attr->la_mode)) {
- /* pass parent fid for cross-ref cases */
- sp->u.sp_pfid = rr->rr_fid1;
- if (sp->sp_cr_flags & MDS_CREATE_SLAVE_OBJ) {
- /* create salve object req, need
- * unpack split ea here
- */
- req_capsule_extend(pill, &RQF_MDS_REINT_CREATE_SLAVE);
- LASSERT(req_capsule_field_present(pill, &RMF_EADATA,
- RCL_CLIENT));
- rr->rr_eadata = req_capsule_client_get(pill,
- &RMF_EADATA);
- rr->rr_eadatalen = req_capsule_get_size(pill,
- &RMF_EADATA,
- RCL_CLIENT);
- sp->u.sp_ea.eadata = rr->rr_eadata;
- sp->u.sp_ea.eadatalen = rr->rr_eadatalen;
- sp->u.sp_ea.fid = rr->rr_fid1;
- RETURN(0);
- }
- req_capsule_extend(pill, &RQF_MDS_REINT_CREATE_RMT_ACL);
- } else if (S_ISLNK(attr->la_mode)) {
+ if (S_ISLNK(attr->la_mode)) {
const char *tgt = NULL;
req_capsule_extend(pill, &RQF_MDS_REINT_CREATE_SYM);
} else {
req_capsule_extend(pill, &RQF_MDS_REINT_CREATE_RMT_ACL);
}
+
rc = mdt_dlmreq_unpack(info);
RETURN(rc);
}
mdt_set_capainfo(info, 1, rr->rr_fid2,
req_capsule_client_get(pill, &RMF_CAPA2));
- info->mti_spec.sp_ck_split = !!(rec->lk_bias & MDS_CHECK_SPLIT);
- info->mti_cross_ref = !!(rec->lk_bias & MDS_CROSS_REF);
rr->rr_name = req_capsule_client_get(pill, &RMF_NAME);
if (rr->rr_name == NULL)
RETURN(-EFAULT);
rr->rr_namelen = req_capsule_get_size(pill, &RMF_NAME, RCL_CLIENT) - 1;
- if (!info->mti_cross_ref)
- LASSERT(rr->rr_namelen > 0);
+
+ LASSERT(rr->rr_namelen > 0);
rc = mdt_dlmreq_unpack(info);
RETURN(rc);
mdt_set_capainfo(info, 0, rr->rr_fid1,
req_capsule_client_get(pill, &RMF_CAPA1));
- info->mti_cross_ref = !!(rec->ul_bias & MDS_CROSS_REF);
- if (!info->mti_cross_ref) {
- rr->rr_name = req_capsule_client_get(pill, &RMF_NAME);
- rr->rr_namelen = req_capsule_get_size(pill, &RMF_NAME, RCL_CLIENT) - 1;
- if (rr->rr_name == NULL || rr->rr_namelen == 0)
- RETURN(-EFAULT);
- } else {
- rr->rr_name = NULL;
- rr->rr_namelen = 0;
- }
- info->mti_spec.sp_ck_split = !!(rec->ul_bias & MDS_CHECK_SPLIT);
+ rr->rr_name = req_capsule_client_get(pill, &RMF_NAME);
+ rr->rr_namelen = req_capsule_get_size(pill, &RMF_NAME, RCL_CLIENT) - 1;
+ if (rr->rr_name == NULL || rr->rr_namelen == 0)
+ RETURN(-EFAULT);
+
if (rec->ul_bias & MDS_VTX_BYPASS)
ma->ma_attr_flags |= MDS_VTX_BYPASS;
else
mdt_set_capainfo(info, 1, rr->rr_fid2,
req_capsule_client_get(pill, &RMF_CAPA2));
- info->mti_spec.sp_ck_split = !!(rec->rn_bias & MDS_CHECK_SPLIT);
- info->mti_cross_ref = !!(rec->rn_bias & MDS_CROSS_REF);
rr->rr_name = req_capsule_client_get(pill, &RMF_NAME);
rr->rr_tgt = req_capsule_client_get(pill, &RMF_SYMTGT);
if (rr->rr_name == NULL || rr->rr_tgt == NULL)
RETURN(-EFAULT);
rr->rr_namelen = req_capsule_get_size(pill, &RMF_NAME, RCL_CLIENT) - 1;
rr->rr_tgtlen = req_capsule_get_size(pill, &RMF_SYMTGT, RCL_CLIENT) - 1;
- if (!info->mti_cross_ref)
- LASSERT(rr->rr_namelen > 0 && rr->rr_tgtlen > 0);
+ LASSERT(rr->rr_namelen > 0 && rr->rr_tgtlen > 0);
+
if (rec->rn_bias & MDS_VTX_BYPASS)
ma->ma_attr_flags |= MDS_VTX_BYPASS;
else
RETURN(-EPROTO);
info->mti_replayepoch = rec->cr_ioepoch;
- info->mti_spec.sp_ck_split = !!(rec->cr_bias & MDS_CHECK_SPLIT);
info->mti_cross_ref = !!(rec->cr_bias & MDS_CROSS_REF);
if (req_capsule_get_size(pill, &RMF_CAPA1, RCL_CLIENT))