[prev in list] [next in list] [prev in thread] [next in thread]
List: openvz-devel
Subject: [Devel] [patch crash v2 2/2] namespace support for net command
From: anderson () redhat ! com (Dave Anderson)
Date: 2014-12-04 19:12:55
Message-ID: 159360319.27976963.1417720375379.JavaMail.zimbra () redhat ! com
[Download RAW message or body]
----- Original Message -----
> net without arguments shows network devices in init_net
> net -n -- in network namespace of current task
> net -n pid|taskp -- in network namespace of specified task
>
> Signed-off-by: Vasily Averin <vvs at openvz.org>
... [ cut ] ...
> static void
> -show_net_devices_v3(void)
> +show_net_devices_v3(ulong task)
> {
> + ulong nsproxy_p, net_ns_p;
> struct list_data list_data, *ld;
> char *net_device_buf;
> char buf[BUFSIZE];
> @@ -523,8 +542,15 @@ show_net_devices_v3(void)
> ld = &list_data;
> BZERO(ld, sizeof(struct list_data));
> ld->flags |= LIST_ALLOCATE;
> - ld->start = ld->end =
> - symbol_value("init_net") + OFFSET(net_dev_base_head);
> + if (VALID_MEMBER(task_struct_nsproxy)) {
> + readmem(task + OFFSET(task_struct_nsproxy), KVADDR, &nsproxy_p,
> + sizeof(ulong), "task_struct.nsproxy", FAULT_ON_ERROR);
> + if (!readmem(nsproxy_p + OFFSET(nsproxy_net_ns), KVADDR, &net_ns_p,
> + sizeof(ulong), "nsproxy.net_ns", RETURN_ON_ERROR|QUIET))
> + error(FATAL, "cannot determine net_namespace location!\n");
> + } else
> + net_ns_p = symbol_value("init_net");
> + ld->start = ld->end = net_ns_p + OFFSET(net_dev_base_head);
> ld->list_head_offset = OFFSET(net_device_dev_list);
Shouldn't the VALID_MEMBER test above be for nsproxy.net_ns?
It looks task_struct.nsproxy was introduced in 2.6.19, but
nsproxy.net_ns didn't come along until 2.6.24.
Dave
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic