Add a syslog_ns pointer to user_namespace, and make syslog_ns per user_namespace, not global. Since syslog_ns is assigned to user_ns, we can have full capabilities in new user_ns to create a new syslog_ns. Signed-off-by: Rui Xiang <rui.xiang@xxxxxxxxxx> --- include/linux/syslog.h | 5 +++++ include/linux/user_namespace.h | 1 + 2 files changed, 6 insertions(+) diff --git a/include/linux/syslog.h b/include/linux/syslog.h index 425fafe..62ce47f 100644 --- a/include/linux/syslog.h +++ b/include/linux/syslog.h @@ -90,6 +90,11 @@ struct syslog_namespace { size_t syslog_partial; int dmesg_restrict; + + /* + * user namespace which owns this syslog ns. + */ + struct user_namespace *owner; }; static inline struct syslog_namespace *get_syslog_ns( diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h index b6b215f..ce2de5b 100644 --- a/include/linux/user_namespace.h +++ b/include/linux/user_namespace.h @@ -28,6 +28,7 @@ struct user_namespace { unsigned int proc_inum; bool may_mount_sysfs; bool may_mount_proc; + struct syslog_namespace *syslog_ns; }; extern struct user_namespace init_user_ns; -- 1.8.2.2 _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/containers