It looks like Oren wanted ns c/r to "sort of work" with CONFIG_UTS_NS=n but kernel/utsname.c is not compiled if CONFIG_UTS_NS=n. Signed-off-by: Serge E. Hallyn <serue@xxxxxxxxxx> --- include/linux/checkpoint.h | 5 +++++ kernel/utsname.c | 13 ------------- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/include/linux/checkpoint.h b/include/linux/checkpoint.h index c2f04c5..ef4fc33 100644 --- a/include/linux/checkpoint.h +++ b/include/linux/checkpoint.h @@ -136,8 +136,13 @@ extern int checkpoint_ns(struct ckpt_ctx *ctx, void *ptr); extern void *restore_ns(struct ckpt_ctx *ctx); /* uts-ns */ +#ifdef CONFIG_UTS_NS extern int checkpoint_uts_ns(struct ckpt_ctx *ctx, void *ptr); extern void *restore_uts_ns(struct ckpt_ctx *ctx); +#else +#define checkpoint_uts_ns checkpoint_bad +#define restore_uts_ns restore_bad +#endif /* ipc-ns */ #ifdef CONFIG_SYSVIPC diff --git a/kernel/utsname.c b/kernel/utsname.c index 76f9966..5c12ebb 100644 --- a/kernel/utsname.c +++ b/kernel/utsname.c @@ -130,11 +130,6 @@ static struct uts_namespace *do_restore_uts_ns(struct ckpt_ctx *ctx) h->domainname_len > sizeof(uts_ns->name.domainname)) goto out; - /* - * If !CONFIG_UTS_NS, do not restore the global uts state, as - * it is used by other processes. - */ -#ifdef CONFIG_UTS_NS ret = -ENOMEM; uts_ns = create_uts_ns(); if (!uts_ns) @@ -153,14 +148,6 @@ static struct uts_namespace *do_restore_uts_ns(struct ckpt_ctx *ctx) up_read(&uts_sem); if (ret < 0) goto out; -#else - ret = -EEXIST; - /* complain if image contains multiple namespaces */ - if (ctx->stats.uts_ns) - goto out; - uts_ns = current->nsproxy->uts_ns; - get_uts_ns(uts_ns); -#endif ctx->stats.uts_ns++; out: -- 1.6.1 _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers