From: Daniel Lezcano Date: Thu, 15 Oct 2009 12:17:14 +0000 (+0200) Subject: mount /dev/mqueue X-Git-Tag: lxc_0_6_4~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0e322d22956f86db247a321859d9b2c50fcfcf14;p=thirdparty%2Flxc.git mount /dev/mqueue Mount always /dev/mqueue with lxc_init. Signed-off-by: Daniel Lezcano --- diff --git a/src/lxc/lxc-setcap.in b/src/lxc/lxc-setcap.in index 69c5bc56f..19203c23a 100644 --- a/src/lxc/lxc-setcap.in +++ b/src/lxc/lxc-setcap.in @@ -27,7 +27,7 @@ LXC_CREATE_CAPS="cap_sys_admin" LXC_NETSTAT_CAPS="cap_sys_admin" -LXC_INIT_CAPS="cap_sys_admin" +LXC_INIT_CAPS="cap_sys_admin,cap_dac_override" LXC_UNSHARE_CAPS="cap_net_admin,cap_net_raw,cap_sys_admin,cap_dac_override" LXC_START_CAPS="cap_fowner,cap_sys_chroot,cap_setpcap,cap_net_admin,cap_net_raw,cap_sys_admin,cap_dac_override" LXC_EXECUTE_CAPS=$LXC_START_CAPS diff --git a/src/lxc/lxc_init.c b/src/lxc/lxc_init.c index 2fee98586..deef34310 100644 --- a/src/lxc/lxc_init.c +++ b/src/lxc/lxc_init.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -49,7 +50,7 @@ static struct option options[] = { static int mount_fs(const char *source, const char *target, const char *type) { - /* sometimes the umount fails */ + /* the umount may fail */ if (umount(target)) WARN("failed to unmount %s : %s", target, strerror(errno)); @@ -71,6 +72,15 @@ static inline int setup_fs(void) if (mount_fs("shmfs", "/dev/shm", "tmpfs")) return -1; + /* If we were able to mount /dev/shm, then /dev exists */ + if (access("/dev/mqueue", F_OK) && mkdir("/dev/mqueue", 0666)) { + SYSERROR("failed to create '/dev/mqueue'"); + return -1; + } + + if (mount_fs("mqueue", "/dev/mqueue", "mqueue")) + return -1; + return 0; }