[CRIU] [PATCH 11/28] ns: Add top_net_ns global variable
Andrei Vagin
avagin at virtuozzo.com
Tue Jun 6 20:48:06 MSK 2017
On Mon, Jun 05, 2017 at 08:25:05PM +0300, Kirill Tkhai wrote:
> It will be need for fast obtaining root_item's net_ns,
> and to fixup old dumps.
>
> lookup_ns_by_id() can't fail otherwise it'd failed
> in MARK_ROOT_NS().
>
> Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>
> ---
> criu/include/namespaces.h | 1 +
> criu/namespaces.c | 2 ++
> 2 files changed, 3 insertions(+)
>
> diff --git a/criu/include/namespaces.h b/criu/include/namespaces.h
> index 631d6228a..4e06ebc0f 100644
> --- a/criu/include/namespaces.h
> +++ b/criu/include/namespaces.h
> @@ -163,6 +163,7 @@ struct ns_id {
> extern struct ns_id *ns_ids;
> extern struct ns_id *top_pid_ns;
> extern struct ns_id *root_user_ns;
Pls, add a description what top_net_ns is and how we are going to use
it?
> +extern struct ns_id *top_net_ns;
>
> #define NS_DESC_ENTRY(_cflag, _str, _alt_str) \
> { \
> diff --git a/criu/namespaces.c b/criu/namespaces.c
> index d73b2d9f9..ea8e3e391 100644
> --- a/criu/namespaces.c
> +++ b/criu/namespaces.c
> @@ -895,6 +895,7 @@ static int set_ns_hookups(struct ns_id *ns)
>
> struct ns_id *top_pid_ns = NULL;
> struct ns_id *root_user_ns = NULL;
> +struct ns_id *top_net_ns = NULL;
> /* Mapping NS_ROOT to NS_CRIU */
> UsernsEntry *userns_entry;
>
> @@ -2158,6 +2159,7 @@ int set_ns_roots(void)
> if (MARK_ROOT_NS(ids, net) || MARK_ROOT_NS(ids, ipc) || MARK_ROOT_NS(ids, uts) ||
> MARK_ROOT_NS(ids, mnt) || MARK_ROOT_NS(ids, cgroup))
> return -1;
> + top_net_ns = lookup_ns_by_id(ids->net_ns_id, &net_ns_desc);
It is a second lookup of ids->net_ns_id in this function, can we avoid
it?
> return 0;
> }
>
>
More information about the CRIU
mailing list