b->mbo_gid = from_kgid(&init_user_ns, current_gid());
b->mbo_fsuid = from_kuid(&init_user_ns, current_fsuid());
b->mbo_fsgid = from_kgid(&init_user_ns, current_fsgid());
- b->mbo_capability = current_cap().cap[0];
+ b->mbo_capability = ll_capability_u32(current_cap());
}
void mdc_swap_layouts_pack(struct req_capsule *pill,
rec->cr_opcode = REINT_CREATE;
rec->cr_fsuid = uid;
rec->cr_fsgid = gid;
- rec->cr_cap = cap_effective.cap[0];
+ rec->cr_cap = ll_capability_u32(cap_effective);
rec->cr_fid1 = op_data->op_fid1;
rec->cr_fid2 = op_data->op_fid2;
rec->cr_mode = mode;
rec->cr_opcode = REINT_OPEN;
rec->cr_fsuid = from_kuid(&init_user_ns, current_fsuid());
rec->cr_fsgid = from_kgid(&init_user_ns, current_fsgid());
- rec->cr_cap = current_cap().cap[0];
+ rec->cr_cap = ll_capability_u32(current_cap());
rec->cr_mode = mode;
cr_flags = mds_pack_open_flags(flags);
rec->cr_rdev = rdev;
rec->sa_opcode = REINT_SETATTR;
rec->sa_fsuid = from_kuid(&init_user_ns, current_fsuid());
rec->sa_fsgid = from_kgid(&init_user_ns, current_fsgid());
- rec->sa_cap = current_cap().cap[0];
+ rec->sa_cap = ll_capability_u32(current_cap());
rec->sa_suppgid = -1;
rec->sa_fid = op_data->op_fid1;
REINT_RMENTRY : REINT_UNLINK;
rec->ul_fsuid = op_data->op_fsuid;
rec->ul_fsgid = op_data->op_fsgid;
- rec->ul_cap = op_data->op_cap.cap[0];
+ rec->ul_cap = ll_capability_u32(op_data->op_cap);
rec->ul_mode = op_data->op_mode;
rec->ul_suppgid1 = op_data->op_suppgids[0];
rec->ul_suppgid2 = -1;
rec->lk_opcode = REINT_LINK;
rec->lk_fsuid = op_data->op_fsuid; /* current->fsuid; */
rec->lk_fsgid = op_data->op_fsgid; /* current->fsgid; */
- rec->lk_cap = op_data->op_cap.cap[0]; /* current->cap_effective; */
+ rec->lk_cap = ll_capability_u32(op_data->op_cap);
rec->lk_suppgid1 = op_data->op_suppgids[0];
rec->lk_suppgid2 = op_data->op_suppgids[1];
rec->lk_fid1 = op_data->op_fid1;
rec->rn_opcode = REINT_RENAME;
rec->rn_fsuid = op_data->op_fsuid;
rec->rn_fsgid = op_data->op_fsgid;
- rec->rn_cap = op_data->op_cap.cap[0];
+ rec->rn_cap = ll_capability_u32(op_data->op_cap);
rec->rn_suppgid1 = op_data->op_suppgids[0];
rec->rn_suppgid2 = op_data->op_suppgids[1];
rec->rn_fid1 = op_data->op_fid1;
rec->rn_opcode = REINT_MIGRATE;
rec->rn_fsuid = op_data->op_fsuid;
rec->rn_fsgid = op_data->op_fsgid;
- rec->rn_cap = op_data->op_cap.cap[0];
+ rec->rn_cap = ll_capability_u32(op_data->op_cap);
rec->rn_suppgid1 = op_data->op_suppgids[0];
rec->rn_suppgid2 = op_data->op_suppgids[1];
rec->rn_fid1 = op_data->op_fid1;
}
CDEBUG(D_OTHER, "squash req from %s, (%d:%d/%x)=>(%d:%d/%x)\n",
- libcfs_nidstr(peernid),
- ucred->uc_fsuid, ucred->uc_fsgid, ucred->uc_cap.cap[0],
+ libcfs_nidstr(peernid), ucred->uc_fsuid, ucred->uc_fsgid,
+ (u32)ll_capability_u32(ucred->uc_cap),
squash->rsi_uid, squash->rsi_gid, 0);
ucred->uc_fsuid = squash->rsi_uid;
ucred->uc_cap = CAP_EMPTY_SET;
if (!nodemap || ucred->uc_o_uid != nodemap->nm_squash_uid)
- ucred->uc_cap.cap[0] = pud->pud_cap;
+ ll_set_capability_u32(&ucred->uc_cap, pud->pud_cap);
ucred->uc_fsuid = pud->pud_fsuid;
ucred->uc_fsgid = pud->pud_fsgid;
uc->uc_suppgids[1] = -1;
uc->uc_ginfo = NULL;
uc->uc_cap = CAP_EMPTY_SET;
- uc->uc_cap.cap[0] = body->mbo_capability;
+ ll_set_capability_u32(&uc->uc_cap, body->mbo_capability);
rc = old_init_ucred_common(info, nodemap);
nodemap_putref(nodemap);
uc->uc_fsuid = rec->sa_fsuid;
uc->uc_fsgid = rec->sa_fsgid;
uc->uc_cap = CAP_EMPTY_SET;
- uc->uc_cap.cap[0] = rec->sa_cap;
+ ll_set_capability_u32(&uc->uc_cap, rec->sa_cap);
uc->uc_suppgids[0] = rec->sa_suppgid;
uc->uc_suppgids[1] = -1;
- rr->rr_fid1 = &rec->sa_fid;
+ rr->rr_fid1 = &rec->sa_fid;
la->la_valid = mdt_attr_valid_xlate(rec->sa_valid, rr, ma);
la->la_mode = rec->sa_mode;
la->la_flags = rec->sa_attr_flags;
uc->uc_fsuid = rec->cr_fsuid;
uc->uc_fsgid = rec->cr_fsgid;
uc->uc_cap = CAP_EMPTY_SET;
- uc->uc_cap.cap[0] = rec->cr_cap;
+ ll_set_capability_u32(&uc->uc_cap, rec->cr_cap);
uc->uc_suppgids[0] = rec->cr_suppgid1;
uc->uc_suppgids[1] = -1;
uc->uc_umask = rec->cr_umask;
uc->uc_fsuid = rec->lk_fsuid;
uc->uc_fsgid = rec->lk_fsgid;
uc->uc_cap = CAP_EMPTY_SET;
- uc->uc_cap.cap[0] = rec->lk_cap;
+ ll_set_capability_u32(&uc->uc_cap, rec->lk_cap);
uc->uc_suppgids[0] = rec->lk_suppgid1;
uc->uc_suppgids[1] = rec->lk_suppgid2;
- attr->la_uid = rec->lk_fsuid;
- attr->la_gid = rec->lk_fsgid;
- rr->rr_fid1 = &rec->lk_fid1;
- rr->rr_fid2 = &rec->lk_fid2;
- attr->la_ctime = rec->lk_time;
- attr->la_mtime = rec->lk_time;
- attr->la_valid = LA_UID | LA_GID | LA_CTIME | LA_MTIME;
+ attr->la_uid = rec->lk_fsuid;
+ attr->la_gid = rec->lk_fsgid;
+ rr->rr_fid1 = &rec->lk_fid1;
+ rr->rr_fid2 = &rec->lk_fid2;
+ attr->la_ctime = rec->lk_time;
+ attr->la_mtime = rec->lk_time;
+ attr->la_valid = LA_UID | LA_GID | LA_CTIME | LA_MTIME;
rc = mdt_name_unpack(pill, &RMF_NAME, &rr->rr_name, 0);
if (rc < 0)
uc->uc_fsuid = rec->ul_fsuid;
uc->uc_fsgid = rec->ul_fsgid;
uc->uc_cap = CAP_EMPTY_SET;
- uc->uc_cap.cap[0] = rec->ul_cap;
+ ll_set_capability_u32(&uc->uc_cap, rec->ul_cap);
uc->uc_suppgids[0] = rec->ul_suppgid1;
uc->uc_suppgids[1] = -1;
uc->uc_fsuid = rec->rn_fsuid;
uc->uc_fsgid = rec->rn_fsgid;
uc->uc_cap = CAP_EMPTY_SET;
- uc->uc_cap.cap[0] = rec->rn_cap;
+ ll_set_capability_u32(&uc->uc_cap, rec->rn_cap);
uc->uc_suppgids[0] = rec->rn_suppgid1;
uc->uc_suppgids[1] = rec->rn_suppgid2;
uc->uc_fsuid = rec->rn_fsuid;
uc->uc_fsgid = rec->rn_fsgid;
uc->uc_cap = CAP_EMPTY_SET;
- uc->uc_cap.cap[0] = rec->rn_cap;
+ ll_set_capability_u32(&uc->uc_cap, rec->rn_cap);
uc->uc_suppgids[0] = rec->rn_suppgid1;
uc->uc_suppgids[1] = rec->rn_suppgid2;
uc->uc_fsuid = rec->cr_fsuid;
uc->uc_fsgid = rec->cr_fsgid;
uc->uc_cap = CAP_EMPTY_SET;
- uc->uc_cap.cap[0] = rec->cr_cap;
+ ll_set_capability_u32(&uc->uc_cap, rec->cr_cap);
uc->uc_suppgids[0] = rec->cr_suppgid1;
uc->uc_suppgids[1] = rec->cr_suppgid2;
uc->uc_umask = rec->cr_umask;
uc->uc_fsuid = rec->sx_fsuid;
uc->uc_fsgid = rec->sx_fsgid;
uc->uc_cap = CAP_EMPTY_SET;
- uc->uc_cap.cap[0] = rec->sx_cap;
+ ll_set_capability_u32(&uc->uc_cap, rec->sx_cap);
uc->uc_suppgids[0] = rec->sx_suppgid1;
uc->uc_suppgids[1] = -1;
- rr->rr_opcode = rec->sx_opcode;
- rr->rr_fid1 = &rec->sx_fid;
- attr->la_valid = rec->sx_valid;
- attr->la_ctime = rec->sx_time;
- attr->la_size = rec->sx_size;
- attr->la_flags = rec->sx_flags;
+ rr->rr_opcode = rec->sx_opcode;
+ rr->rr_fid1 = &rec->sx_fid;
+ attr->la_valid = rec->sx_valid;
+ attr->la_ctime = rec->sx_time;
+ attr->la_size = rec->sx_size;
+ attr->la_flags = rec->sx_flags;
rc = mdt_name_unpack(pill, &RMF_NAME, &rr->rr_name, 0);
if (rc < 0)
RETURN(rc);
- if (req_capsule_field_present(pill, &RMF_EADATA, RCL_CLIENT)) {
- rr->rr_eadatalen = req_capsule_get_size(pill, &RMF_EADATA,
- RCL_CLIENT);
+ if (req_capsule_field_present(pill, &RMF_EADATA, RCL_CLIENT)) {
+ rr->rr_eadatalen = req_capsule_get_size(pill, &RMF_EADATA,
+ RCL_CLIENT);
if (rr->rr_eadatalen > info->mti_mdt->mdt_max_ea_size)
RETURN(-E2BIG);
- if (rr->rr_eadatalen > 0) {
- rr->rr_eadata = req_capsule_client_get(pill,
- &RMF_EADATA);
- if (rr->rr_eadata == NULL)
- RETURN(-EFAULT);
- } else {
- rr->rr_eadata = NULL;
- }
- } else if (!(attr->la_valid & OBD_MD_FLXATTRRM)) {
- CDEBUG(D_INFO, "no xattr data supplied\n");
- RETURN(-EFAULT);
- }
+ if (rr->rr_eadatalen > 0) {
+ rr->rr_eadata = req_capsule_client_get(pill,
+ &RMF_EADATA);
+ if (rr->rr_eadata == NULL)
+ RETURN(-EFAULT);
+ } else {
+ rr->rr_eadata = NULL;
+ }
+ } else if (!(attr->la_valid & OBD_MD_FLXATTRRM)) {
+ CDEBUG(D_INFO, "no xattr data supplied\n");
+ RETURN(-EFAULT);
+ }
rc = req_check_sepol(pill);
if (rc)
if (mdt_dlmreq_unpack(info) < 0)
RETURN(-EPROTO);
- RETURN(0);
+ RETURN(0);
}
static int mdt_resync_unpack(struct mdt_thread_info *info)
uc->uc_fsuid = rec->rs_fsuid;
uc->uc_fsgid = rec->rs_fsgid;
uc->uc_cap = CAP_EMPTY_SET;
- uc->uc_cap.cap[0] = rec->rs_cap;
+ ll_set_capability_u32(&uc->uc_cap, rec->rs_cap);
rr->rr_fid1 = &rec->rs_fid;
rr->rr_mirror_id = rec->rs_mirror_id;