conf: expand shmounts lxc.mount.auto option

Allow users to specify a path in the container they want to use.
This will help LXD.

Needed-by: https://github.com/lxc/lxd/issues/5227

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
This commit is contained in:
Christian Brauner 2018-10-30 14:16:58 +01:00 committed by Stéphane Graber
parent 007ef61a74
commit 594426ca1b
No known key found for this signature in database
GPG Key ID: C638974D64792D67

View File

@ -1788,18 +1788,24 @@ static int set_config_mount_auto(const char *key, const char *value,
lxc_conf->auto_mounts |= allowed_auto_mounts[i].flag;
if (is_shmounts) {
lxc_conf->shmount.path_host = strdup(token + STRLITERALLEN("shmounts:"));
char *slide = token + STRLITERALLEN("shmounts:");
if (*slide == '\0') {
SYSERROR("Failed to copy shmounts host path");
goto on_error;
}
lxc_conf->shmount.path_host = strdup(slide);
if (!lxc_conf->shmount.path_host) {
SYSERROR("Failed to copy shmounts host path");
goto on_error;
}
if (strcmp(lxc_conf->shmount.path_host, "") == 0) {
ERROR("Invalid shmounts path: empty");
goto on_error;
}
slide = strchr(slide, ':');
if (!slide || *(++slide) == '\0')
slide = "/dev/.lxc-mounts";
lxc_conf->shmount.path_cont = strdup("/dev/.lxc-mounts");
lxc_conf->shmount.path_cont = strdup(slide);
if(!lxc_conf->shmount.path_cont) {
SYSERROR("Failed to copy shmounts container path");
goto on_error;