*/
static int nrs_policy_start_locked(struct ptlrpc_nrs_policy *policy, char *arg)
{
- struct ptlrpc_nrs *nrs = policy->pol_nrs;
- int rc = 0;
+ struct ptlrpc_nrs *nrs = policy->pol_nrs;
+ struct ptlrpc_service_part *svcpt = nrs->nrs_svcpt;
+ char *srv_name = svcpt->scp_service->srv_name;
+ int rc = 0;
ENTRY;
/**
RETURN(-EAGAIN);
if (arg && strlen(arg) >= sizeof(policy->pol_arg)) {
- CWARN("NRS: arg '%s' is too long\n", arg);
- return -EINVAL;
+ rc = -EINVAL;
+ CWARN("%s.%d NRS: arg '%s' is too long: rc = %d\n",
+ srv_name, svcpt->scp_cpt, arg, rc);
+ return rc;
}
if (policy->pol_flags & PTLRPC_NRS_FL_FALLBACK) {
if (atomic_inc_return(&policy->pol_desc->pd_refs) == 1 &&
!try_module_get(policy->pol_desc->pd_owner)) {
atomic_dec(&policy->pol_desc->pd_refs);
- CERROR("NRS: cannot get module for policy %s; is it alive?\n",
- policy->pol_desc->pd_name);
- RETURN(-ENODEV);
+ rc = -ENODEV;
+ CERROR("%s.%d NRS: cannot get module for policy %s (is it alive?): rc = %d\n",
+ srv_name, svcpt->scp_cpt, policy->pol_desc->pd_name, rc);
+ RETURN(rc);
}
/**
static int nrs_policy_unregister(struct ptlrpc_nrs *nrs, char *name)
{
struct ptlrpc_nrs_policy *policy = NULL;
+ struct ptlrpc_service_part *svcpt = nrs->nrs_svcpt;
+ char *srv_name = svcpt->scp_service->srv_name;
int rc = 0;
ENTRY;
policy = nrs_policy_find_locked(nrs, name);
if (policy == NULL) {
rc = -ENOENT;
- CERROR("NRS: cannot find policy '%s': rc = %d\n", name, rc);
+ CERROR("%s.%d NRS: cannot find policy '%s': rc = %d\n",
+ srv_name, svcpt->scp_cpt, name, rc);
GOTO(out_unlock, rc);
}
if (policy->pol_ref > 1) {
rc = -EBUSY;
- CERROR("NRS: policy '%s' is busy with %ld references: rc = %d",
- name, policy->pol_ref, rc);
+ CERROR("%s.%d NRS: policy '%s' is busy with %ld references: rc = %d\n",
+ srv_name, svcpt->scp_cpt, name, policy->pol_ref, rc);
GOTO(out_put, rc);
}
if (policy->pol_state != NRS_POL_STATE_STOPPED) {
rc = nrs_policy_stop_locked(policy);
if (rc) {
- CERROR("NRS: failed to stop policy '%s' with refcount %d: rc = %d\n",
- name, refcount_read(&policy->pol_start_ref), rc);
+ CERROR("%s.%d NRS: failed to stop policy '%s' with refcount %d: rc = %d\n",
+ srv_name, svcpt->scp_cpt, name,
+ refcount_read(&policy->pol_start_ref), rc);
GOTO(out_put, rc);
}
}
static int nrs_policy_register(struct ptlrpc_nrs *nrs,
struct ptlrpc_nrs_pol_desc *desc)
{
- struct ptlrpc_nrs_policy *policy;
- struct ptlrpc_nrs_policy *tmp;
- struct ptlrpc_service_part *svcpt = nrs->nrs_svcpt;
- int rc;
+ struct ptlrpc_nrs_policy *policy;
+ struct ptlrpc_nrs_policy *tmp;
+ struct ptlrpc_service_part *svcpt = nrs->nrs_svcpt;
+ char *srv_name = svcpt->scp_service->srv_name;
+ int rc;
ENTRY;
LASSERT(svcpt != NULL);
tmp = nrs_policy_find_locked(nrs, policy->pol_desc->pd_name);
if (tmp != NULL) {
- CERROR("NRS policy %s has been registered, can't register it "
- "for %s\n", policy->pol_desc->pd_name,
- svcpt->scp_service->srv_name);
+ rc = -EEXIST;
+ CERROR("%s.%d NRS: policy %s has been registered, can't register it: rc = %d\n",
+ srv_name, svcpt->scp_cpt, policy->pol_desc->pd_name,
+ rc);
nrs_policy_put_locked(tmp);
spin_unlock(&nrs->nrs_lock);
nrs_policy_fini(policy);
OBD_FREE_PTR(policy);
- RETURN(-EEXIST);
+ RETURN(rc);
}
list_add_tail(&policy->pol_list, &nrs->nrs_policy_list);
if (nrs_policy_compatible(svc, desc)) {
rc = nrs_policy_register(nrs, desc);
if (rc != 0) {
- CERROR("Failed to register NRS policy %s for "
- "partition %d of service %s: %d\n",
- desc->pd_name, svcpt->scp_cpt,
- svc->srv_name, rc);
+ CERROR("%s.%d NRS: Failed to register policy %s: rc = %d\n",
+ svc->srv_name, svcpt->scp_cpt,
+ desc->pd_name, rc);
/**
* Fail registration if any of the policies'
* registration fails.
continue;
ptlrpc_service_for_each_part(svcpt, i, svc) {
+ char *srv_name = svcpt->scp_service->srv_name;
bool hp = false;
again:
if (rc == -ENOENT) {
rc = 0;
} else if (rc != 0) {
- CERROR("Failed to unregister NRS policy %s for "
- "partition %d of service %s: %d\n",
- desc->pd_name, svcpt->scp_cpt,
- svcpt->scp_service->srv_name, rc);
+ CERROR("%s.%d NRS: Failed to unregister policy %s: rc = %d\n",
+ srv_name, svcpt->scp_cpt, desc->pd_name,
+ rc);
RETURN(rc);
}
if ((conf->nc_flags & PTLRPC_NRS_FL_REG_EXTERN) &&
(conf->nc_flags & (PTLRPC_NRS_FL_FALLBACK |
PTLRPC_NRS_FL_REG_START))) {
+ rc = -EINVAL;
CERROR("NRS: failing to register policy %s. Please check "
"policy flags; external policies cannot act as fallback "
"policies, or be started immediately upon registration "
- "without interaction with lprocfs\n", conf->nc_name);
- RETURN(-EINVAL);
+ "without interaction with lprocfs: rc = %d\n",
+ conf->nc_name, rc);
+ RETURN(rc);
}
mutex_lock(&nrs_core.nrs_mutex);
if (nrs_policy_find_desc_locked(conf->nc_name) != NULL) {
- CERROR("NRS: failing to register policy %s which has already "
- "been registered with NRS core!\n",
- conf->nc_name);
- GOTO(fail, rc = -EEXIST);
+ rc = -EEXIST;
+ CERROR("NRS: failing to register policy %s which has already been registered with NRS core: rc = %d\n",
+ conf->nc_name, rc);
+ GOTO(fail, rc);
}
OBD_ALLOC_PTR(desc);
continue;
ptlrpc_service_for_each_part(svcpt, i, svc) {
- struct ptlrpc_nrs *nrs;
- bool hp = false;
+ struct ptlrpc_nrs *nrs;
+ char *srv_name = svcpt->scp_service->srv_name;
+ bool hp = false;
again:
nrs = nrs_svcpt2nrs(svcpt, hp);
rc = nrs_policy_register(nrs, desc);
if (rc != 0) {
- CERROR("Failed to register NRS policy %s for "
- "partition %d of service %s: %d\n",
- desc->pd_name, svcpt->scp_cpt,
- svcpt->scp_service->srv_name, rc);
+ CERROR("%s.%d NRS: Failed to register policy %s: rc = %d\n",
+ srv_name, svcpt->scp_cpt,
+ desc->pd_name, rc);
rc2 = nrs_policy_unregister_locked(desc);
/**