|
|
@@ -128,7 +128,7 @@ void thread__put(struct thread *thread)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-struct namespaces *thread__namespaces(const struct thread *thread)
|
|
|
+static struct namespaces *__thread__namespaces(const struct thread *thread)
|
|
|
{
|
|
|
if (list_empty(&thread->namespaces_list))
|
|
|
return NULL;
|
|
|
@@ -136,10 +136,21 @@ struct namespaces *thread__namespaces(const struct thread *thread)
|
|
|
return list_first_entry(&thread->namespaces_list, struct namespaces, list);
|
|
|
}
|
|
|
|
|
|
+struct namespaces *thread__namespaces(const struct thread *thread)
|
|
|
+{
|
|
|
+ struct namespaces *ns;
|
|
|
+
|
|
|
+ down_read((struct rw_semaphore *)&thread->namespaces_lock);
|
|
|
+ ns = __thread__namespaces(thread);
|
|
|
+ up_read((struct rw_semaphore *)&thread->namespaces_lock);
|
|
|
+
|
|
|
+ return ns;
|
|
|
+}
|
|
|
+
|
|
|
static int __thread__set_namespaces(struct thread *thread, u64 timestamp,
|
|
|
struct namespaces_event *event)
|
|
|
{
|
|
|
- struct namespaces *new, *curr = thread__namespaces(thread);
|
|
|
+ struct namespaces *new, *curr = __thread__namespaces(thread);
|
|
|
|
|
|
new = namespaces__new(event);
|
|
|
if (!new)
|