struct uts_namespace *ns;
char *hostname;
- rcu_read_lock();
- nsproxy = task_nsproxy(current);
+ /*
+ * No need to take the RCU read-side lock to read current
+ * nsproxy. (documented in nsproxy.h)
+ */
+ nsproxy = current->nsproxy;
if (nsproxy) {
ns = nsproxy->uts_ns;
hostname = ns->name.nodename;
chan->ops->event_memset(ctx, 0,
LTTNG_HOSTNAME_CTX_LEN);
}
- rcu_read_unlock();
}
int lttng_add_hostname_to_ctx(struct lttng_ctx **ctx)
unsigned char uuid_s[37], clock_uuid_s[BOOT_ID_LEN];
struct lttng_channel *chan;
struct lttng_event *event;
- char hostname[__NEW_UTS_LEN + 1];
int ret = 0;
if (!ACCESS_ONCE(session->active))
if (ret)
goto end;
- rcu_read_lock();
- memcpy(hostname, task_nsproxy(current)->uts_ns->name.nodename,
- sizeof(hostname));
- rcu_read_unlock();
-
ret = lttng_metadata_printf(session,
"env {\n"
" hostname = \"%s\";\n"
" tracer_minor = %d;\n"
" tracer_patchlevel = %d;\n"
"};\n\n",
- hostname,
+ current->nsproxy->uts_ns->name.nodename,
utsname()->sysname,
utsname()->release,
utsname()->version,