From: Mathieu Desnoyers Date: Mon, 27 Aug 2012 13:46:48 +0000 (-0400) Subject: Cleanup: no need to hold RCU read-side lock when reading current nsproxy X-Git-Tag: v2.1.0-rc1~4 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=3d0d43dbac505d33994f5a57f4f11021410fa417;p=lttng-modules.git Cleanup: no need to hold RCU read-side lock when reading current nsproxy As documented in include/linux/nsproxy.h. Signed-off-by: Mathieu Desnoyers --- diff --git a/lttng-context-hostname.c b/lttng-context-hostname.c index e38340b7..6dc14f9c 100644 --- a/lttng-context-hostname.c +++ b/lttng-context-hostname.c @@ -49,8 +49,11 @@ void hostname_record(struct lttng_ctx_field *field, 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; @@ -60,7 +63,6 @@ void hostname_record(struct lttng_ctx_field *field, chan->ops->event_memset(ctx, 0, LTTNG_HOSTNAME_CTX_LEN); } - rcu_read_unlock(); } int lttng_add_hostname_to_ctx(struct lttng_ctx **ctx) diff --git a/lttng-events.c b/lttng-events.c index 7a1be729..220178f7 100644 --- a/lttng-events.c +++ b/lttng-events.c @@ -903,7 +903,6 @@ int _lttng_session_metadata_statedump(struct lttng_session *session) 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)) @@ -960,11 +959,6 @@ int _lttng_session_metadata_statedump(struct lttng_session *session) 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" @@ -977,7 +971,7 @@ int _lttng_session_metadata_statedump(struct lttng_session *session) " tracer_minor = %d;\n" " tracer_patchlevel = %d;\n" "};\n\n", - hostname, + current->nsproxy->uts_ns->name.nodename, utsname()->sysname, utsname()->release, utsname()->version,