num_pols = svc->srv_parts[0]->scp_nrs_reg.nrs_num_pols;
spin_unlock(&nrs->nrs_lock);
- OBD_ALLOC(infos, num_pols * sizeof(*infos));
+ OBD_ALLOC_PTR_ARRAY(infos, num_pols);
if (infos == NULL)
GOTO(out, rc = -ENOMEM);
again:
out:
if (infos)
- OBD_FREE(infos, num_pols * sizeof(*infos));
+ OBD_FREE_PTR_ARRAY(infos, num_pols);
mutex_unlock(&nrs_core.nrs_mutex);
/* See also lprocfs_rd_timeouts */
static int ptlrpc_lprocfs_timeouts_seq_show(struct seq_file *m, void *n)
{
- struct ptlrpc_service *svc = m->private;
- struct ptlrpc_service_part *svcpt;
- time64_t worstt;
- unsigned int cur;
- unsigned int worst;
- int i;
+ struct ptlrpc_service *svc = m->private;
+ struct ptlrpc_service_part *svcpt;
+ time64_t worst_timestamp;
+ timeout_t cur_timeout;
+ timeout_t worst_timeout;
+ int i;
if (AT_OFF) {
seq_printf(m, "adaptive timeouts off, using obd_timeout %u\n",
}
ptlrpc_service_for_each_part(svcpt, i, svc) {
- cur = at_get(&svcpt->scp_at_estimate);
- worst = svcpt->scp_at_estimate.at_worst_ever;
- worstt = svcpt->scp_at_estimate.at_worst_time;
+ cur_timeout = at_get(&svcpt->scp_at_estimate);
+ worst_timeout = svcpt->scp_at_estimate.at_worst_timeout_ever;
+ worst_timestamp = svcpt->scp_at_estimate.at_worst_timestamp;
seq_printf(m, "%10s : cur %3u worst %3u (at %lld, %llds ago) ",
- "service", cur, worst, (s64)worstt,
- (s64)(ktime_get_real_seconds() - worstt));
+ "service", cur_timeout, worst_timeout,
+ worst_timestamp,
+ ktime_get_real_seconds() - worst_timestamp);
lprocfs_at_hist_helper(m, &svcpt->scp_at_estimate);
}
ssize_t ping_store(struct kobject *kobj, struct attribute *attr,
const char *buffer, size_t count)
{
- return ping_show(kobj, attr, (char *)buffer);
+ int rc = ping_show(kobj, attr, (char *)buffer);
+
+ return (rc < 0) ? rc : count;
}
EXPORT_SYMBOL(ping_store);