X-Git-Url: http://git.lttng.org/?p=lttng-ust.git;a=blobdiff_plain;f=liblttng-ust%2Flttng-ust-comm.c;h=5a2aacdf32d6513348465bdedf0cbfc398b372be;hp=b067b3da1bbc9b71084b121c46a7a530976db041;hb=735bef4705cc42f25d26f25be09ba98f1efb8511;hpb=20142124a2e34c287a277bbd7ef5b28697735d10 diff --git a/liblttng-ust/lttng-ust-comm.c b/liblttng-ust/lttng-ust-comm.c index b067b3da..5a2aacdf 100644 --- a/liblttng-ust/lttng-ust-comm.c +++ b/liblttng-ust/lttng-ust-comm.c @@ -425,6 +425,10 @@ void lttng_ust_fixup_tls(void) lttng_fixup_ust_mutex_nest_tls(); lttng_ust_fixup_perf_counter_tls(); lttng_ust_fixup_fd_tracker_tls(); + lttng_fixup_cgroup_ns_tls(); + lttng_fixup_ipc_ns_tls(); + lttng_fixup_net_ns_tls(); + lttng_fixup_uts_ns_tls(); } int lttng_get_notify_socket(void *owner) @@ -2034,6 +2038,18 @@ void __attribute__((destructor)) lttng_ust_exit(void) lttng_ust_cleanup(1); } +static +void ust_context_ns_reset(void) +{ + lttng_context_pid_ns_reset(); + lttng_context_cgroup_ns_reset(); + lttng_context_ipc_ns_reset(); + lttng_context_mnt_ns_reset(); + lttng_context_net_ns_reset(); + lttng_context_user_ns_reset(); + lttng_context_uts_ns_reset(); +} + /* * We exclude the worker threads across fork and clone (except * CLONE_VM), because these system calls only keep the forking thread @@ -2116,6 +2132,7 @@ void ust_after_fork_child(sigset_t *restore_sigset) lttng_context_vpid_reset(); lttng_context_vtid_reset(); lttng_context_procname_reset(); + ust_context_ns_reset(); DBG("process %d", getpid()); /* Release urcu mutexes */ urcu_bp_after_fork_child(); @@ -2125,6 +2142,16 @@ void ust_after_fork_child(sigset_t *restore_sigset) lttng_ust_init(); } +void ust_after_setns(void) +{ + ust_context_ns_reset(); +} + +void ust_after_unshare(void) +{ + ust_context_ns_reset(); +} + void lttng_ust_sockinfo_session_enabled(void *owner) { struct sock_info *sock_info = owner;