]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
conf, confile: introduce basic structs for shared mount point
authorLiza Tretyakova <elizabet.tretyakova@gmail.com>
Wed, 2 May 2018 07:09:34 +0000 (10:09 +0300)
committerChristian Brauner <christian.brauner@ubuntu.com>
Sun, 22 Jul 2018 13:25:13 +0000 (15:25 +0200)
Signed-off-by: Liza Tretyakova <elizabet.tretyakova@gmail.com>
src/lxc/conf.c
src/lxc/conf.h
src/lxc/confile.c

index d36987c811a1fe077064568c6fda05daf8e7208e..723910cb22af9df95934ef8fcb1a7efeb646fece 100644 (file)
@@ -2714,6 +2714,8 @@ struct lxc_conf *lxc_conf_init(void)
        new->lsm_aa_profile = NULL;
        new->lsm_se_context = NULL;
        new->tmp_umount_proc = false;
+       new->lxc_shmount.path_host = NULL;
+       new->lxc_shmount.path_cont = NULL;
 
        /* if running in a new user namespace, init and COMMAND
         * default to running as UID/GID 0 when using lxc-execute */
@@ -4041,6 +4043,8 @@ void lxc_conf_free(struct lxc_conf *conf)
        lxc_clear_procs(conf, "lxc.proc");
        free(conf->cgroup_meta.dir);
        free(conf->cgroup_meta.controllers);
+       free(conf->lxc_shmount.path_host);
+       free(conf->lxc_shmount.path_cont);
        free(conf);
 }
 
index f7a879c301b0230441bc05017c1ae46261731605..59526507e2ecebc0ea298a940b37f599965c09d7 100644 (file)
@@ -189,6 +189,9 @@ enum {
        LXC_AUTO_CGROUP_FULL_NOSPEC   = 0x0E0, /* /sys/fs/cgroup (full mount, r/w or mixed, depending on caps) */
        LXC_AUTO_CGROUP_FORCE         = 0x100, /* mount cgroups even when cgroup namespaces are supported */
        LXC_AUTO_CGROUP_MASK          = 0x1F0, /* all known cgroup options, doe not contain LXC_AUTO_CGROUP_FORCE */
+
+       LXC_AUTO_SHMOUNTS             = 0x200, /* shared mount point */
+       LXC_AUTO_SHMOUNTS_MASK        = 0x200, /* shared mount point mask */
        LXC_AUTO_ALL_MASK             = 0x1FF, /* all known settings */
 };
 
@@ -367,6 +370,13 @@ struct lxc_conf {
 
        /* procs */
        struct lxc_list procs;
+
+       struct lxc_shmount {
+               /* Absolute path to the shared mount point on the host */
+               char *path_host;
+               /* Absolute path (in the container) to the shared mount point */
+               char *path_cont;
+       } lxc_shmount;
 };
 
 extern int write_id_mapping(enum idtype idtype, pid_t pid, const char *buf,
index 5a18d11bfe410fb8a11819240340cd3be411aa11..86dcdb90baa5e1c458da22fb4d9bb4bb4b4c57f3 100644 (file)
@@ -1659,6 +1659,7 @@ static int set_config_mount_auto(const char *key, const char *value,
            { "cgroup-full:mixed:force", LXC_AUTO_CGROUP_MASK, LXC_AUTO_CGROUP_FULL_MIXED | LXC_AUTO_CGROUP_FORCE  },
            { "cgroup-full:ro:force",    LXC_AUTO_CGROUP_MASK, LXC_AUTO_CGROUP_FULL_RO | LXC_AUTO_CGROUP_FORCE     },
            { "cgroup-full:rw:force",    LXC_AUTO_CGROUP_MASK, LXC_AUTO_CGROUP_FULL_RW | LXC_AUTO_CGROUP_FORCE     },
+           { "shmounts:",               LXC_AUTO_SHMOUNTS_MASK, LXC_AUTO_SHMOUNTS                                 },
            /* For adding anything that is just a single on/off, but has no
            *  options: keep mask and flag identical and just define the enum
            *  value as an unused bit so far