As documented in include/linux/nsproxy.h.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
struct uts_namespace *ns;
char *hostname;
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;
if (nsproxy) {
ns = nsproxy->uts_ns;
hostname = ns->name.nodename;
chan->ops->event_memset(ctx, 0,
LTTNG_HOSTNAME_CTX_LEN);
}
chan->ops->event_memset(ctx, 0,
LTTNG_HOSTNAME_CTX_LEN);
}
}
int lttng_add_hostname_to_ctx(struct lttng_ctx **ctx)
}
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;
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))
int ret = 0;
if (!ACCESS_ONCE(session->active))
- 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"
ret = lttng_metadata_printf(session,
"env {\n"
" hostname = \"%s\";\n"
" tracer_minor = %d;\n"
" tracer_patchlevel = %d;\n"
"};\n\n",
" tracer_minor = %d;\n"
" tracer_patchlevel = %d;\n"
"};\n\n",
+ current->nsproxy->uts_ns->name.nodename,
utsname()->sysname,
utsname()->release,
utsname()->version,
utsname()->sysname,
utsname()->release,
utsname()->version,