Fix: statedump nsproxy 3.11 Linux support
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tue, 3 Sep 2013 04:12:34 +0000 (00:12 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tue, 3 Sep 2013 04:12:34 +0000 (00:12 -0400)
Follow upstream Linux change introduced by:

commit c2b1df2eb42978073ec27c99cc199d20ae48b849
Author: Andy Lutomirski <luto@amacapital.net>
Date:   Thu Aug 22 11:39:16 2013 -0700

    Rename nsproxy.pid_ns to nsproxy.pid_ns_for_children

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
lttng-statedump-impl.c
wrapper/nsproxy.h [new file with mode: 0644]

index 04acf6eff3409beb78944fad9476d44c74098cec..bf9457b5351a379f74efdb65e1dc24681d4a00e1 100644 (file)
@@ -50,6 +50,7 @@
 #include "wrapper/irqdesc.h"
 #include "wrapper/spinlock.h"
 #include "wrapper/fdtable.h"
+#include "wrapper/nsproxy.h"
 
 #ifdef CONFIG_GENERIC_HARDIRQS
 #include <linux/irq.h>
@@ -295,7 +296,7 @@ void lttng_statedump_process_ns(struct lttng_session *session,
        rcu_read_lock();
        proxy = task_nsproxy(p);
        if (proxy) {
-               pid_ns = proxy->pid_ns;
+               pid_ns = lttng_get_proxy_pid_ns(proxy);
                do {
                        trace_lttng_statedump_process_state(session,
                                p, type, mode, submode, status, pid_ns);
diff --git a/wrapper/nsproxy.h b/wrapper/nsproxy.h
new file mode 100644 (file)
index 0000000..e9766ef
--- /dev/null
@@ -0,0 +1,42 @@
+#ifndef _LTTNG_WRAPPER_NSPROXY_H
+#define _LTTNG_WRAPPER_NSPROXY_H
+
+/*
+ * wrapper/nsproxy.h
+ *
+ * Copyright (C) 2011-2012 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; only
+ * version 2.1 of the License.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <linux/version.h>
+#include <linux/nsproxy.h>
+
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
+static inline
+struct pid_namespace *lttng_get_proxy_pid_ns(struct nsproxy *proxy)
+{
+       return proxy->pid_ns_for_children;
+}
+#else
+static inline
+struct pid_namespace *lttng_get_proxy_pid_ns(struct nsproxy *proxy)
+{
+       return proxy->pid_ns;
+}
+#endif
+
+
+#endif /* _LTTNG_WRAPPER_NSPROXY_H */
This page took 0.027285 seconds and 4 git commands to generate.