diff --git a/doc/lxc.container.conf b/doc/lxc.container.conf index 1cb80a2d3..8606f9ebc 100644 --- a/doc/lxc.container.conf +++ b/doc/lxc.container.conf @@ -1,5 +1,5 @@ # the fstab mount file -lxc.mount = ./fstab +lxc.mount.fstab = ./fstab # the hostname to be set into the container lxc.utsname = virtnode diff --git a/doc/lxc.container.conf.sgml.in b/doc/lxc.container.conf.sgml.in index e0697fd1e..73fa12f55 100644 --- a/doc/lxc.container.conf.sgml.in +++ b/doc/lxc.container.conf.sgml.in @@ -815,7 +815,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - + @@ -1987,7 +1987,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA lxc.cgroup.devices.deny = a lxc.cgroup.devices.allow = c 1:3 rw lxc.cgroup.devices.allow = b 8:0 rw - lxc.mount = /etc/fstab.complex + lxc.mount.fstab = /etc/fstab.complex lxc.mount.entry = /lib /root/myrootfs/lib none ro,bind 0 0 lxc.rootfs.path = dir:/mnt/rootfs.complex lxc.cap.drop = sys_module mknod setuid net_raw diff --git a/src/lxc/confile.c b/src/lxc/confile.c index bf1771029..ed13a345d 100644 --- a/src/lxc/confile.c +++ b/src/lxc/confile.c @@ -87,7 +87,7 @@ lxc_config_define(log_level); lxc_config_define(log_file); lxc_config_define(mount); lxc_config_define(mount_auto); -lxc_config_define(fstab); +lxc_config_define(mount_fstab); lxc_config_define(rootfs_mount); lxc_config_define(rootfs_options); lxc_config_define(rootfs_backend); @@ -159,11 +159,16 @@ static struct lxc_config_t config[] = { { "lxc.id_map", set_config_idmaps, get_config_idmaps, clr_config_idmaps, }, { "lxc.mount.entry", set_config_mount, get_config_mount, clr_config_mount, }, { "lxc.mount.auto", set_config_mount_auto, get_config_mount_auto, clr_config_mount_auto, }, - { "lxc.mount", set_config_fstab, get_config_fstab, clr_config_fstab, }, + { "lxc.mount.fstab", set_config_mount_fstab, get_config_mount_fstab, clr_config_mount_fstab, }, { "lxc.rootfs.mount", set_config_rootfs_mount, get_config_rootfs_mount, clr_config_rootfs_mount, }, { "lxc.rootfs.options", set_config_rootfs_options, get_config_rootfs_options, clr_config_rootfs_options, }, { "lxc.rootfs.path", set_config_rootfs_path, get_config_rootfs_path, clr_config_rootfs_path, }, + /* REMOVE IN LXC 3.0 + legacy mount key + */ + { "lxc.mount", set_config_mount_fstab, get_config_mount_fstab, clr_config_mount_fstab, }, + /* REMOVE IN LXC 3.0 legacy rootfs.backend key */ @@ -1739,11 +1744,11 @@ on_error: return -1; } -static int set_config_fstab(const char *key, const char *value, - struct lxc_conf *lxc_conf, void *data) +static int set_config_mount_fstab(const char *key, const char *value, + struct lxc_conf *lxc_conf, void *data) { if (lxc_config_value_empty(value)) { - clr_config_fstab(key, lxc_conf, NULL); + clr_config_mount_fstab(key, lxc_conf, NULL); return -1; } @@ -2926,8 +2931,8 @@ static int get_config_log_file(const char *key, char *retv, int inlen, return lxc_get_conf_str(retv, inlen, c->logfile); } -static int get_config_fstab(const char *key, char *retv, int inlen, - struct lxc_conf *c, void *data) +static int get_config_mount_fstab(const char *key, char *retv, int inlen, + struct lxc_conf *c, void *data) { return lxc_get_conf_str(retv, inlen, c->fstab); } @@ -3441,8 +3446,8 @@ static inline int clr_config_mount_auto(const char *key, struct lxc_conf *c, return lxc_clear_automounts(c); } -static inline int clr_config_fstab(const char *key, struct lxc_conf *c, - void *data) +static inline int clr_config_mount_fstab(const char *key, struct lxc_conf *c, + void *data) { free(c->fstab); c->fstab = NULL; diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c index b0d890e83..d02379403 100644 --- a/src/lxc/lxccontainer.c +++ b/src/lxc/lxccontainer.c @@ -2803,8 +2803,13 @@ static int copy_fstab(struct lxc_container *oldc, struct lxc_container *c) if (!oldpath) return 0; + /* REMOVE IN LXC 3.0 + legacy mount key + */ clear_unexp_config_line(c->lxc_conf, "lxc.mount", false); + clear_unexp_config_line(c->lxc_conf, "lxc.mount.fstab", false); + char *p = strrchr(oldpath, '/'); if (!p) return -1; @@ -2829,7 +2834,7 @@ static int copy_fstab(struct lxc_container *oldc, struct lxc_container *c) ERROR("error: allocating pathname"); return -1; } - if (!do_append_unexp_config_line(c->lxc_conf, "lxc.mount", newpath)) { + if (!do_append_unexp_config_line(c->lxc_conf, "lxc.mount.fstab", newpath)) { ERROR("error saving new lxctab"); return -1; } diff --git a/src/tests/parse_config_file.c b/src/tests/parse_config_file.c index 3461472d8..118755900 100644 --- a/src/tests/parse_config_file.c +++ b/src/tests/parse_config_file.c @@ -473,13 +473,22 @@ int main(int argc, char *argv[]) goto non_test_error; } - /* lxc.mount */ + /* REMOVE IN LXC 3.0 + legacy lxc.mount key + */ if (set_get_compare_clear_save_load(c, "lxc.mount", "/some/path", NULL, true) < 0) { lxc_error("%s\n", "lxc.mount"); goto non_test_error; } + /* lxc.mount.fstab */ + if (set_get_compare_clear_save_load(c, "lxc.mount.fstab", "/some/path", NULL, + true) < 0) { + lxc_error("%s\n", "lxc.mount.fstab"); + goto non_test_error; + } + /* lxc.mount.auto * Note that we cannot compare the values since the getter for * lxc.mount.auto does not preserve ordering. diff --git a/templates/lxc-download.in b/templates/lxc-download.in index fb891b039..ee1825db4 100644 --- a/templates/lxc-download.in +++ b/templates/lxc-download.in @@ -545,7 +545,7 @@ if [ -e "${LXC_PATH}/config-auto" ]; then rm ${LXC_PATH}/config-auto fi if [ -e "$fstab" ]; then - echo "lxc.mount = ${LXC_PATH}/fstab" >> ${LXC_PATH}/config + echo "lxc.mount.fstab = ${LXC_PATH}/fstab" >> ${LXC_PATH}/config fi echo "lxc.uts.name = ${LXC_NAME}" >> ${LXC_PATH}/config diff --git a/templates/lxc-pld.in b/templates/lxc-pld.in index f50f3fb83..3f994a92b 100644 --- a/templates/lxc-pld.in +++ b/templates/lxc-pld.in @@ -242,7 +242,7 @@ lxc.uts.name = $utsname lxc.tty = 4 lxc.pts = 1024 # Consider if below line is right for systemd container -lxc.mount = $config_path/fstab +lxc.mount.fstab = $config_path/fstab lxc.cap.drop = sys_module mac_admin mac_override sys_time lxc.autodev = $auto_dev diff --git a/templates/lxc-slackware.in b/templates/lxc-slackware.in index 2c80351e5..7a1d7fd6a 100644 --- a/templates/lxc-slackware.in +++ b/templates/lxc-slackware.in @@ -641,7 +641,7 @@ cat <> $path/config lxc.uts.name = $name lxc.arch = $arch -lxc.mount = $rootfs/etc/fstab +lxc.mount.fstab = $rootfs/etc/fstab lxc.include = ${LXC_TEMPLATE_CONFIG}/slackware.common.conf EOF