remove_dead = 0;
}
} else {
- vcred.vc_uid = cfs_current()->uid;
- vcred.vc_gid = cfs_current()->gid;
+ vcred.vc_uid = cfs_curproc_uid();
+ vcred.vc_gid = cfs_curproc_gid();
}
return sec->ps_policy->sp_cops->lookup_ctx(sec, &vcred,
}
if (unlikely(cfs_test_bit(PTLRPC_CTX_ERROR_BIT, &ctx->cc_flags))) {
+ cfs_spin_lock(&req->rq_lock);
req->rq_err = 1;
+ cfs_spin_unlock(&req->rq_lock);
req_off_ctx_list(req, ctx);
RETURN(-EPERM);
}
* don't switch ctx if import was deactivated
*/
if (req->rq_import->imp_deactive) {
+ cfs_spin_lock(&req->rq_lock);
req->rq_err = 1;
+ cfs_spin_unlock(&req->rq_lock);
RETURN(-EINTR);
}
LASSERT(ctx == req->rq_cli_ctx);
CERROR("req %p: failed to replace dead ctx %p: %d\n",
req, ctx, rc);
+ cfs_spin_lock(&req->rq_lock);
req->rq_err = 1;
+ cfs_spin_unlock(&req->rq_lock);
RETURN(rc);
}
cfs_atomic_set(&req->rq_refcount, 10000);
CFS_INIT_LIST_HEAD(&req->rq_ctx_chain);
cfs_waitq_init(&req->rq_reply_waitq);
+ cfs_waitq_init(&req->rq_set_waitq);
req->rq_import = imp;
req->rq_flvr = sec->ps_flvr;
req->rq_cli_ctx = ctx;
early_req->rq_repdata = (struct lustre_msg *) early_buf;
early_req->rq_repdata_len = early_size;
early_req->rq_early = 1;
+ early_req->rq_reqmsg = req->rq_reqmsg;
rc = do_cli_unwrap_reply(early_req);
if (rc) {
void sptlrpc_import_flush_my_ctx(struct obd_import *imp)
{
- import_flush_ctx_common(imp, cfs_current()->uid, 1, 1);
+ import_flush_ctx_common(imp, cfs_curproc_uid(), 1, 1);
}
EXPORT_SYMBOL(sptlrpc_import_flush_my_ctx);
pud = lustre_msg_buf(msg, offset, 0);
- pud->pud_uid = cfs_current()->uid;
- pud->pud_gid = cfs_current()->gid;
- pud->pud_fsuid = cfs_current()->fsuid;
- pud->pud_fsgid = cfs_current()->fsgid;
+ pud->pud_uid = cfs_curproc_uid();
+ pud->pud_gid = cfs_curproc_gid();
+ pud->pud_fsuid = cfs_curproc_fsuid();
+ pud->pud_fsgid = cfs_curproc_fsgid();
pud->pud_cap = cfs_curproc_cap_pack();
pud->pud_ngroups = (msg->lm_buflens[offset] - sizeof(*pud)) / 4;
task_lock(current);
if (pud->pud_ngroups > current_ngroups)
pud->pud_ngroups = current_ngroups;
- memcpy(pud->pud_groups, cfs_current()->group_info->blocks[0],
+ memcpy(pud->pud_groups, current_cred()->group_info->blocks[0],
pud->pud_ngroups * sizeof(__u32));
task_unlock(current);
#endif