]> git.proxmox.com Git - mirror_lxc.git/log
mirror_lxc.git
9 years agoaudit: added capacity and reserve() to nlmsg
Shuai Zhang [Sun, 30 Nov 2014 13:03:37 +0000 (21:03 +0800)]
audit: added capacity and reserve() to nlmsg

There are now two (permitted) ways to add data to netlink message:

 1. put_xxx()
 2. call nlmsg_reserve() to get a pointer to newly reserved room within the
    original netlink message, then write or memcpy data to that area.

Both of them guarantee adding requested length data do not overflow the
pre-allocated message buffer by checking against its cap field first.

And there may be no need to access nlmsg_len outside nl module, because both
put_xxx() and nlmsg_reserve() have alread did that for us.

Signed-off-by: Shuai Zhang <zs.broccoli@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agotests: try again when waitpid() sets errno as EINTR
Arjun Sreedharan [Thu, 4 Dec 2014 08:56:04 +0000 (14:26 +0530)]
tests: try again when waitpid() sets errno as EINTR

when waitpid() is interrupted, errno is not set to the negative
value -EINTR. It is set to EINTR. check against EINTR.

Signed-off-by: Arjun Sreedharan <arjun024@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agochange version to 1.1.0.alpha3 in configure.ac
Stéphane Graber [Wed, 3 Dec 2014 19:59:15 +0000 (14:59 -0500)]
change version to 1.1.0.alpha3 in configure.ac

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agofixed typo in comment
Shuai Zhang [Wed, 3 Dec 2014 06:13:20 +0000 (14:13 +0800)]
fixed typo in comment

Signed-off-by: Shuai Zhang <zs.broccoli@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agoImprove veth error cases logging
Stéphane Graber [Wed, 3 Dec 2014 16:01:45 +0000 (11:01 -0500)]
Improve veth error cases logging

The previous error message made it look like the host interface name was
the concatenation of both the host and guest interface names.

Closes #374

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agolxc-debian: mask both Wheezy and Jessie udev services
Cameron Norman [Mon, 1 Dec 2014 21:35:52 +0000 (13:35 -0800)]
lxc-debian: mask both Wheezy and Jessie udev services

Signed-off-by: Cameron Norman <camerontnorman@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agolxc-debian: adjust init system configurations
Cameron Norman [Mon, 1 Dec 2014 21:29:26 +0000 (13:29 -0800)]
lxc-debian: adjust init system configurations

Do as much as possible to allow containers switching from non-systemd to
systemd to work as intended (but nothing that will cause side effects).
Use update-rc.d disable instead of remove so the init scripts are not
re-enabled when the package is updated

Signed-off-by: Cameron Norman <camerontnorman@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agodoc: Always include the Japanese lxc-top manpage
KATOH Yasufumi [Tue, 2 Dec 2014 09:20:15 +0000 (18:20 +0900)]
doc: Always include the Japanese lxc-top manpage

Update for commit e71549f

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agoAdd the Japanese translation for the lxc.init_cmd config option
KATOH Yasufumi [Tue, 2 Dec 2014 09:15:34 +0000 (18:15 +0900)]
Add the Japanese translation for the lxc.init_cmd config option

Update for commit 67c660d

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agoRevert "audit: added capacity and reserve() to nlmsg"
Stéphane Graber [Mon, 1 Dec 2014 20:37:42 +0000 (15:37 -0500)]
Revert "audit: added capacity and reserve() to nlmsg"

This reverts commit 55ae7edb18c503a4b869dd0089f25f03a05a6563.

This change caused hangs in the testsuite, specifically with lxc-user-nic.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agoAllow lxc_clear_config_item to clear idmaps.
Casey Marshall [Fri, 28 Nov 2014 07:11:06 +0000 (01:11 -0600)]
Allow lxc_clear_config_item to clear idmaps.

Ran into this when trying to automate stgraber's "GUI in containers"
post.

Signed-off-by: Casey Marshall <casey.marshall@canonical.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agoIssue #278: lxc-start-ephemeral: add --cdir option for cow-mounts
overlay fs [Wed, 26 Nov 2014 17:11:43 +0000 (04:11 +1100)]
Issue #278: lxc-start-ephemeral: add --cdir option for cow-mounts

This is a copy of patch version 3 for issue #278 on the issue-tracker:

 - Allow multiple bind-mounts (--bdir) and multiple cow-mounts (--cdir).

 - Further fixes to permissions throughout lxc-start-ephemeral (annotated
   in the code).

Signed-off by: Oleg Freedholm <overlayfs@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agolxc-opensuse: Disabling builds on openSUSE Tumbleweed, detection improved.
Johannes Kastl [Sat, 29 Nov 2014 20:43:26 +0000 (21:43 +0100)]
lxc-opensuse: Disabling builds on openSUSE Tumbleweed, detection improved.

Signed-off-by: Johannes Kastl <git@ojkastl.de>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agodoc: Always include the lxc-top manpage
Stéphane Graber [Thu, 27 Nov 2014 19:33:30 +0000 (14:33 -0500)]
doc: Always include the lxc-top manpage

Since it's no longer written in lua.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agoDefine a new lxc.init_cmd config option
Stéphane Graber [Wed, 26 Nov 2014 19:33:27 +0000 (14:33 -0500)]
Define a new lxc.init_cmd config option

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Dwight Engen <dwight.engen@oracle.com>
9 years agotabs/spaces consistency
Stéphane Graber [Wed, 26 Nov 2014 19:23:05 +0000 (14:23 -0500)]
tabs/spaces consistency

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agoAdd missing files to ignore list
Stéphane Graber [Wed, 26 Nov 2014 20:28:38 +0000 (15:28 -0500)]
Add missing files to ignore list

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Dwight Engen <dwight.engen@oracle.com>
9 years agoaudit: added capacity and reserve() to nlmsg
Shuai Zhang [Sun, 30 Nov 2014 13:03:37 +0000 (21:03 +0800)]
audit: added capacity and reserve() to nlmsg

There are now two (permitted) ways to add data to netlink message:

1. put_xxx()
2. call nlmsg_reserve() to get a pointer to newly reserved room within the
   original netlink message, then write or memcpy data to that area.

Both of them guarantee adding requested length data do not overflow the
pre-allocated message buffer by checking against its cap field first.

And there may be no need to access nlmsg_len outside nl module, because both
put_xxx() and nlmsg_reserve() have alread did that for us.

Signed-off-by: Shuai Zhang <zs.broccoli@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agolxc-opensuse: Disable on 13.2
Johannes Kastl [Wed, 26 Nov 2014 19:20:05 +0000 (20:20 +0100)]
lxc-opensuse: Disable on 13.2
Disabled building openSUSE containers on openSUSE 13.2 and  openSUSE
Tumbleweed due to faulty behaviour with newer versions of
init_buildsystem.

Signed-off-by: Johannes Kastl <git@ojkastl.de>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agolxc-alpine: create a default tty for console
Natanael Copa [Thu, 27 Nov 2014 14:21:21 +0000 (15:21 +0100)]
lxc-alpine: create a default tty for console

Create a tty so we get login prompt on console by default

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agolxc-alpine: make sure /dev/shm is world writeable
Natanael Copa [Thu, 27 Nov 2014 14:20:50 +0000 (15:20 +0100)]
lxc-alpine: make sure /dev/shm is world writeable

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agofix wrong nlmsg_len
Shuai Zhang [Thu, 27 Nov 2014 12:38:01 +0000 (20:38 +0800)]
fix wrong nlmsg_len

nlmsg_len is the length of message including header.

Signed-off-by: Shuai Zhang <zs.broccoli@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agoFix nbd partition id test
Stéphane Graber [Wed, 26 Nov 2014 21:40:04 +0000 (16:40 -0500)]
Fix nbd partition id test

Reported-by: David Binderman
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agoRemounts bind mounts if read-only flag is provided
Abin Shahab [Wed, 12 Nov 2014 00:06:52 +0000 (00:06 +0000)]
Remounts bind mounts if read-only flag is provided

Bind mounts do not honor filesystem mount options. This change will
remount filesystems that are bind mounted if there are changes to
filesystem mount options, specifically if the mount is readonly.

Signed-off-by: Abin Shahab <ashahab@altiscale.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agodoc: change "-t" option of lxc-create(1) to being required
KATOH Yasufumi [Wed, 26 Nov 2014 07:20:54 +0000 (16:20 +0900)]
doc: change "-t" option of lxc-create(1) to being required

* fix "reg" to "req" in English (fix for commit b8683fe)
* change "opt" to "req" in Japanese

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agolxc-opensuse: Check if given argument is a valid release
Johannes Kastl [Fri, 14 Nov 2014 20:57:33 +0000 (21:57 +0100)]
lxc-opensuse: Check if given argument is a valid release

Signed-off-by: Johannes Kastl <git@ojkastl.de>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agolxc-opensuse: Added explanation on how to use the template
Johannes Kastl [Thu, 6 Nov 2014 15:29:25 +0000 (16:29 +0100)]
lxc-opensuse: Added explanation on how to use the template

Signed-off-by: Johannes Kastl <git@ojkastl.de>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agolxc-opensuse: template now understands release arguments
Johannes Kastl [Thu, 6 Nov 2014 15:24:40 +0000 (16:24 +0100)]
lxc-opensuse: template now understands release arguments

Signed-off-by: Johannes Kastl <git@ojkastl.de>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agodoc: Update kernel and cgroup info in Japanese lxc(7)
KATOH Yasufumi [Tue, 25 Nov 2014 08:16:08 +0000 (17:16 +0900)]
doc: Update kernel and cgroup info in Japanese lxc(7)

Update for commit 0dcbd62

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agolxc-create -t option is not optional
Silvio Fricke [Wed, 12 Nov 2014 09:45:06 +0000 (10:45 +0100)]
lxc-create -t option is not optional

Closes: #355
Signed-off-by: Silvio Fricke <silvio.fricke@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agoFix lxc-centos.in typo.
謝致邦 [Thu, 6 Nov 2014 10:38:08 +0000 (18:38 +0800)]
Fix lxc-centos.in typo.

Signed-off-by: 謝致邦 <Yeking@Red54.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agoFix lxc-openmandriva.in typo.
謝致邦 [Thu, 6 Nov 2014 10:43:31 +0000 (18:43 +0800)]
Fix lxc-openmandriva.in typo.

Signed-off-by: 謝致邦 <Yeking@Red54.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agoopenwrt: add common configuration file
Petar Koretic [Thu, 30 Oct 2014 12:41:49 +0000 (12:41 +0000)]
openwrt: add common configuration file

This adds OpenWrt common config file.

Signed-off-by: Petar Koretic <petar.koretic@sartura.hr>
CC: Luka Perkov <luka.perkov@sartura.hr>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agolxc-cirros: support creating+running unprivileged
Serge Hallyn [Fri, 31 Oct 2014 02:42:31 +0000 (02:42 +0000)]
lxc-cirros: support creating+running unprivileged

Support creation and use of lxc-cirros by unprivileged users.

If we detect we are an unprivileged user, then insist that we
be in a userns with a id mapping.

If we are in a userns, then don't extract /dev when extracting
the rootfs.

If we are not root, then save the tarball to ~/.cache/lxc/cirros
instead of /var/cache/lxc/cirros.

If we are not roo, then include entries to auto-mount proc and sys,
as well as bind-mount devices.

Cc: Scott Moser <smoser@ubuntu.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agoconf.c: change 'instanciate' to 'instantiate'
Joel Nider [Sun, 9 Nov 2014 16:41:12 +0000 (18:41 +0200)]
conf.c: change 'instanciate' to 'instantiate'

This is a multipart message in MIME format.

Fixes a small (but consistent) spelling mistake in conf.c

Signed-off-by: Joel Nider <joeln@il.ibm.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agolxc_info: flush stdout before calling routines which may fork
Serge Hallyn [Wed, 12 Nov 2014 03:51:04 +0000 (03:51 +0000)]
lxc_info: flush stdout before calling routines which may fork

Otherwise both resulting takss will print what they had flushed when they
exit.

This fixes https://bugs.launchpad.net/bugs/1389244

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Tested-by: Tycho Andersen <tycho.andersen@canonical.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agolua: fix return value of attach() method
Dwight Engen [Mon, 17 Nov 2014 17:33:38 +0000 (12:33 -0500)]
lua: fix return value of attach() method

Add simple test case for attach() method. Add assert for return value
from create() method which also returns a boolean.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agoFix the lxc manpage a bit
Stéphane Graber [Fri, 14 Nov 2014 17:26:12 +0000 (12:26 -0500)]
Fix the lxc manpage a bit

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agolxc-plamo: mount tmpfs on /dev/shm
TAMUKI Shoichi [Wed, 19 Nov 2014 08:23:36 +0000 (17:23 +0900)]
lxc-plamo: mount tmpfs on /dev/shm

Do mkdir $rootfs/dev/shm and then mount tmpfs on /dev/shm.

Signed-off-by: TAMUKI Shoichi <tamuki@linet.gr.jp>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agolxc-debian: support systemd as PID 1
Antonio Terceiro [Mon, 24 Nov 2014 01:51:06 +0000 (23:51 -0200)]
lxc-debian: support systemd as PID 1

Containers with systemd need a somewhat special setup, which I borrowed
and adapted from lxc-fedora. These changes are required so that Debian 8
(jessie) containers work properly, and are a no-op for previous Debian
versions.

Signed-off-by: Antonio Terceiro <terceiro@debian.org>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agoMerge pull request #358 from silvio/sfr/bugfix-freed-return-value
hallyn [Thu, 20 Nov 2014 23:37:51 +0000 (17:37 -0600)]
Merge pull request #358 from silvio/sfr/bugfix-freed-return-value

lxc/utils: bugfix freed pointer return value

9 years agolxc/utils: bugfix freed pointer return value
Silvio Fricke [Fri, 14 Nov 2014 19:56:12 +0000 (20:56 +0100)]
lxc/utils: bugfix freed pointer return value

We allocate a pointer and save this address in a static variable. After
this we freed this pointer and return.

Here a cuttout of a valgrind report:

[...]
==11568== Invalid read of size 1
==11568==    at 0x4C2D524: strlen (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==11568==    by 0x5961C9B: puts (in /usr/lib/libc-2.20.so)
==11568==    by 0x400890: main (lxc_config.c:73)
==11568==  Address 0x6933e21 is 1 bytes inside a block of size 32 free'd
==11568==    at 0x4C2B200: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==11568==    by 0x4E654F2: lxc_global_config_value (utils.c:415)
==11568==    by 0x4E92177: lxc_get_global_config_item (lxccontainer.c:2287)
==11568==    by 0x400883: main (lxc_config.c:71)
[...]

Signed-off-by: Silvio Fricke <silvio.fricke@gmail.com>
9 years agoMerge pull request #356 from silvio/sfr/utils-choose-init
hallyn [Tue, 18 Nov 2014 15:07:45 +0000 (09:07 -0600)]
Merge pull request #356 from silvio/sfr/utils-choose-init

lxc/utils: improve choose_init code readability

9 years agoMerge pull request #353 from ashtoreth/master
Dwight Engen [Mon, 17 Nov 2014 16:48:36 +0000 (11:48 -0500)]
Merge pull request #353 from ashtoreth/master

added container:attach() into the Lua API

9 years agolxc/utils: improve choose_init code readability
Silvio Fricke [Wed, 12 Nov 2014 07:38:59 +0000 (08:38 +0100)]
lxc/utils: improve choose_init code readability

Signed-off-by: Silvio Fricke <silvio.fricke@gmail.com>
9 years agoUpdate core.c
ashtoreth [Sat, 8 Nov 2014 14:04:32 +0000 (16:04 +0200)]
Update core.c

fixed indent and vars

9 years agoadded container:attach() into the Lua API
PiXy [Fri, 7 Nov 2014 09:04:42 +0000 (11:04 +0200)]
added container:attach() into the Lua API

9 years agolxc-debian: Fix default mirrors
Gu1 [Tue, 28 Oct 2014 01:14:28 +0000 (02:14 +0100)]
lxc-debian: Fix default mirrors

Fix a typo in the lines inserted in the default sources.list.
Change the default mirror to http.debian.net which is (supposedly) more
accurate and better than cdn.debian.net for a generic configuration.
Use security.debian.org directly for the {release}/updates repository.

Signed-off-by: Gu1 <gu1@aeroxteam.fr>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agoFix clone issues
KATOH Yasufumi [Wed, 5 Nov 2014 07:03:34 +0000 (16:03 +0900)]
Fix clone issues

This commit fixes two issues at the time of clone:
* unnecessary directory is created when clone between overlayfs/aufs
* clone failed when the end of rootfs path is not "/rootfs"

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agocgmanager: fix 'attach' with "all" controller support
Serge Hallyn [Sun, 2 Nov 2014 14:01:18 +0000 (14:01 +0000)]
cgmanager: fix 'attach' with "all" controller support

"all" is not a supported keyword for cgmanager's get_pid_cgroup.
Pass the first mounted cgroup subsystem instead of passing "all" when
getting the container's cgorup to attach to.

Also, make sure that the target cgroup is in fact in all identical
cgroups before attaching with 'all".  If not, then we must attach to
each cgroup separately, or else we will not be in all the same cgroups
as the target container.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agooverlayfs: overlayfs.v22 or higher needs workdir option
KATOH Yasufumi [Thu, 30 Oct 2014 11:31:20 +0000 (20:31 +0900)]
overlayfs: overlayfs.v22 or higher needs workdir option

This patch creates workdir as "olwork", and retry mount with workdir
option when mount is failed.
It is used to prepare files before atomically swithing with
destination, and needs to be on the same filesystem as upperdir. It's
OK for it to be empty.

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
9 years agoattach: don't ignore sigint/sigkill if stdin is redirected
Serge Hallyn [Wed, 29 Oct 2014 15:03:14 +0000 (15:03 +0000)]
attach: don't ignore sigint/sigkill if stdin is redirected

If attach is being done over passed-in fds, then we shouldn't
mess with the caller's signal table to ignore ctrl-c over the
fd.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agoFixed mismatch on ipvX gateway
Sergio Jimenez [Sat, 4 Oct 2014 18:51:27 +0000 (20:51 +0200)]
Fixed mismatch on ipvX gateway

Signed-off-by: Sergio Jimenez <tripledes@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agoCreate the apt proxy in the cache instead of the 1st container
Simon Deziel [Sun, 19 Oct 2014 02:20:23 +0000 (22:20 -0400)]
Create the apt proxy in the cache instead of the 1st container

This addresses https://github.com/lxc/lxc/issues/280.

Signed-off-by: Simon Deziel <simon@sdeziel.info>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agooverlay and aufs clone_paths: be more robust
Serge Hallyn [Thu, 16 Oct 2014 15:10:21 +0000 (15:10 +0000)]
overlay and aufs clone_paths: be more robust

Currently when we clone a container, bdev_copy passes NULL as dst argument
of bdev_init, then sees bdev->dest (as a result) is NULL, and sets
bdev->dest to $lxcpath/$name/rootfs.  so $ops->clone_paths() can
assume that "/rootfs" is at the end of the path.  The overlayfs and
aufs clonepaths do assume that and index to endofstring-6 and append
delta0.  Let's be more robust by actually finding the last / in
the path.

Then, instead of always setting oldbdev->dest to $lxcpath/$name/rootfs,
set it to oldbdev->src.  Else dir_clonepaths fails when mounting src
onto dest bc dest does not exist.  We could also fix that by creating
bdev->dest if needed, but that addes an empty directory to the old
container.

This fixes 'lxc-clone -o x1 -n x2' if x1 has lxc.rootfs = /var/lib/lxc/x1/x
and makes the overlayfs and aufs paths less fragile should something else
change.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agoattach: don't use confstr(_CS_PATH)
Serge Hallyn [Thu, 23 Oct 2014 04:34:05 +0000 (04:34 +0000)]
attach: don't use confstr(_CS_PATH)

It is not system-definable, rather glibc sets that to bin:/usr/bin, which is
simply too restrictive.  So just always set our preferred path.

This was reported at:
https://bugs.launchpad.net/ubuntu/+source/lxc/+bug/1384327

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agolxc_global_config_value: simplify the theme
Serge Hallyn [Mon, 27 Oct 2014 14:23:10 +0000 (14:23 +0000)]
lxc_global_config_value: simplify the theme

Rather than try to free all the not-being-returned items at
each if clause where we assign one to return value, just NULL
the one we are returning so we can safely free all the
values.  This should fix the newly reported coverity memory
leak

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agolxc-start: don't re-try to mount rootfs if we already did so
Serge Hallyn [Tue, 14 Oct 2014 11:04:35 +0000 (11:04 +0000)]
lxc-start: don't re-try to mount rootfs if we already did so

If we are root using a user namespace and are mounting a blockdev as rootfs,
then we do this before unsharing the userns, because we are not allowed to
do it in a userns.  But after unsharing the userns, we unconditionally
retried mounting the rootfs, resulting in failure.  stop that.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agoc/r: put lxc-restore-net in /usr/share
Tycho Andersen [Wed, 22 Oct 2014 22:25:02 +0000 (22:25 +0000)]
c/r: put lxc-restore-net in /usr/share

On restore, we pass criu a script to manage the network interfaces (i.e. the
full path to lxc-restore-net), which we previously installed into
/var/lib/<tuple>/lxc. However, this is also the directory that is the default
for use in mounting the rootfs locally before pivot_root()ing. So, we mounted
the rootfs and then happliy called criu, pointing it to this directory which
didn't have lxc-restore-net any more, it just had the container's rootfs.
Instead, we should put lxc-restore-net somewhere else, so that criu can still
see it after the rootfs is mounted.

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agoMake legacy lxc-ls more robust
Dark Templar [Mon, 27 Oct 2014 13:33:04 +0000 (08:33 -0500)]
Make legacy lxc-ls more robust

Behave well when /etc/lxc/${name} is a symlink to directory

Signed-off-by: Dark Templar <dark_templar@hotbox.ru>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agodo_rootfs_setup: fix return bugs
Serge Hallyn [Mon, 27 Oct 2014 03:01:30 +0000 (22:01 -0500)]
do_rootfs_setup: fix return bugs

Fix return value on bind mount failure.

If we've already mounted the rootfs, exit after the bind mount
rather than re-trying the rootfs mount.  The only case where
this happens is when root is starting a container in a user
namespace and with a block device backing store.

In that case, pre-mount hooks will be executed in the initial
user namespace.  That may be worth fixing.  Or it may be what
we want.  We should think about it and fix it.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
9 years agolxc-start: return 0 rather than error if container is already running
Serge Hallyn [Wed, 22 Oct 2014 15:54:36 +0000 (10:54 -0500)]
lxc-start: return 0 rather than error if container is already running

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
9 years agoFix another gentoo template typo
Dark Templar [Wed, 22 Oct 2014 14:35:08 +0000 (09:35 -0500)]
Fix another gentoo template typo

I've found one more typo in the gentoo template, configuration in the
generated file /etc/conf.d/hostname was not valid, but it didn't impact
me due to "lxc.utsname" being set in the configuration file of container
and hostname service being not used. Anyway, I've made a patch and
sending it with this mail.

Signed-off-by: Dark Templar <dark_templar@hotbox.ru>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
9 years agobusybox template: mount fstab when available
Bogdan Purcareata [Mon, 20 Oct 2014 19:56:54 +0000 (15:56 -0400)]
busybox template: mount fstab when available

When running unprivileged, lxc-create will touch a fstab file, with bind-mounts
for the ttys and other devices. Add this entry in the container config.

Signed-off-by: Bogdan Purcareata <bogdan.purcareata@freescale.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agobusybox template: support for unprivileged containers
Bogdan Purcareata [Mon, 20 Oct 2014 19:56:53 +0000 (15:56 -0400)]
busybox template: support for unprivileged containers

Apply the changes found in templates/lxc-download to the busybox template as
well. Change ownership of the config and fstab files to the unprivileged user,
and the ownership of the rootfs to root in the new user namespace.

Eliminate the "unsupported for userns" flag.

Signed-off-by: Bogdan Purcareata <bogdan.purcareata@freescale.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agolxc_global_config_value can return the default lxc.cgroup.pattern whether root or...
KATOH Yasufumi [Thu, 2 Oct 2014 09:01:06 +0000 (18:01 +0900)]
lxc_global_config_value can return the default lxc.cgroup.pattern whether root or non-root

>>> On Tue, 30 Sep 2014 19:48:09 +0000
    in message   "Re: [lxc-devel] [PATCH] lxc-config can show lxc.cgroup.(use|pattern)"
                  Serge Hallyn-san wrote:

> I think it would be worth also augmenting
> lxc_global_config_value() to return a default lxc.cgroup.use
> for 'all', and a default lxc.cgroup.pattern ("/lxc/%n" for root
> or "%n" for non-root).

lxc.cgroup.pattern is like this? (^_^;)

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
9 years agolxc-config can show lxc.cgroup.(use|pattern)
KATOH Yasufumi [Tue, 30 Sep 2014 10:10:56 +0000 (19:10 +0900)]
lxc-config can show lxc.cgroup.(use|pattern)

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
9 years agoFix typo in lxc-gentoo template
Dark Templar [Mon, 20 Oct 2014 21:38:32 +0000 (16:38 -0500)]
Fix typo in lxc-gentoo template

Signed-off-by: Dark Templar <dark_templar@hotbox.ru>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
9 years agoapparmor: check for mount feature at a better time
Serge Hallyn [Mon, 13 Oct 2014 23:14:30 +0000 (23:14 +0000)]
apparmor: check for mount feature at a better time

Check for it when we check for apparmor being enabled, rather
than doing it during the middle of a container setup.

This avoid the need to try mounting /sys and /sys/kernel/security
in the middle of startup, which we may not be allowed to anyway.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Dwight Engen <dwight.engen@oracle.com>
9 years agofix typo (spurious ';')
Serge Hallyn [Fri, 17 Oct 2014 14:43:48 +0000 (16:43 +0200)]
fix typo (spurious ';')

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
9 years agoc/r: use sizeof instead of magic numbers
Tycho Andersen [Thu, 16 Oct 2014 13:14:00 +0000 (13:14 +0000)]
c/r: use sizeof instead of magic numbers

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
9 years agoc/r: refactor the way we pass data to criu/scripts
Tycho Andersen [Thu, 16 Oct 2014 13:13:59 +0000 (13:13 +0000)]
c/r: refactor the way we pass data to criu/scripts

We previously wrote a bunch of files (eth*, veth*, and bridge*) as hard coded
files which we used as the names of interfaces to restore via criu's
--veth-pair. This meant that if people, e.g. gave a different bridge on their
new host, we would use our saved bridge in bridge* and try to restore to the
wrong bridge. Instead, we can just generate a new veth id (if the user hasn't
provided one), and use whatever the user configured values for the interface
name and bridge are.

This allows people to switch the bridge that they restore onto simply by
migrating the rootfs and config, and then changing the bridge name in the
container's configuration before running lxc-checkpoint.

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
9 years agoc/r: factor out network dump/restore code
Tycho Andersen [Fri, 10 Oct 2014 14:55:37 +0000 (14:55 +0000)]
c/r: factor out network dump/restore code

Break the monolithic ->checkpoint and ->restore functions into smaller ones.
This is in preparation for the checkpoint/restore tty work, which has a similar
need to dump information outside of criu.

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
9 years agonetdev_move_by_index: support wlan
Serge Hallyn [Wed, 15 Oct 2014 14:20:45 +0000 (16:20 +0200)]
netdev_move_by_index: support wlan

The python lxc-device supported adding wlan devices, so add that
support as well.  Since the python one did not support 'del',
I didn't try adding that support, though it should be trivial to
add.

We should be able to do the wlan adding using netlink, but I
went ahead and used 'iw' as the netlink path looked more
complicated than it does for other nics.  Patches to switch that
over would be very welcome.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
9 years agolxccontainer.c: rename enter_to_ns to enter_net_ns
Serge Hallyn [Wed, 15 Oct 2014 09:55:51 +0000 (11:55 +0200)]
lxccontainer.c: rename enter_to_ns to enter_net_ns

because that's what it does

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
9 years agolxc-device: rewrite lxc-device.
Dongsheng Yang [Tue, 16 Sep 2014 09:12:00 +0000 (17:12 +0800)]
lxc-device: rewrite lxc-device.

As there is a function named attach_interface to pass
a interface to container now, we do not need to relay on
python impolementation for lxc-device any more.

changelog: 10/15/2014: serge: fail immediately if run as non-root.
changelog: 10/15/2014: serge: add explicit error message on bad usage (fix build failure)

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agopython-lxc: Add [at|de]tach_interface() to python binding.
Dongsheng Yang [Tue, 16 Sep 2014 05:29:11 +0000 (13:29 +0800)]
python-lxc: Add [at|de]tach_interface() to python binding.

Changelog: 10/15/2014: serge: make ifname mandatory for detach_interface.

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agocontainer: introduce two functions named as {at/de}tach_interface().
Dongsheng Yang [Fri, 10 Oct 2014 02:57:13 +0000 (10:57 +0800)]
container: introduce two functions named as {at/de}tach_interface().

Currently, we depends on ip command to attach interface to container.
It means we only implemented it by python.

This patch implement adding and removing interface by c and added
them in struct container.

Changelog: 10/15/2014 (serge): return error if ifname is NULL.

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agoutils: move useful helper functions from lxccontainer to utils.
Dongsheng Yang [Tue, 16 Sep 2014 08:54:42 +0000 (16:54 +0800)]
utils: move useful helper functions from lxccontainer to utils.

Function of enter_to_ns() is useful but currently is static for
lxccontainer.c.

This patch split it into two parts named as switch_to_newuser()
and switch_to_newnet() into utils.c.

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agonetwork: introduce a interface named lxc_netdev_isup().
Dongsheng Yang [Tue, 16 Sep 2014 05:09:59 +0000 (13:09 +0800)]
network: introduce a interface named lxc_netdev_isup().

When we need to know some info about a netdev, such as is_up or not,
we need to read the flag for the netdev.

This patch introduce a interface function named lxc_netdev_isup()
to check is a netdev up or down.

And introduce a network private function named netdev_get_flag()
to get flag for netdev by netlink.

Changelog: 10/15/2015: Return failure if name==NULL to avoid later strlen fun

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agonetwork: allow lxc_network_move_by_index() rename netdev in moving.
Dongsheng Yang [Tue, 16 Sep 2014 04:58:55 +0000 (12:58 +0800)]
network: allow lxc_network_move_by_index() rename netdev in moving.

In netlink, we can set the dest_name of netdev when move netdev
between namespaces in one netlink request. And moving a netdev of
a src_name to a netdev with a dest_name is a common usecase.

So this patch add a parametaer to lxc_network_move_by_index() to
indicate the dest_name for the movement. NULL means same with
the src_name.

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agolxc_start: ERROR if container is already running.
Dongsheng Yang [Fri, 12 Sep 2014 13:49:09 +0000 (21:49 +0800)]
lxc_start: ERROR if container is already running.

We should exit with a error when starting a running container.

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agonetwork: check result of if_nametoindex().
Dongsheng Yang [Thu, 11 Sep 2014 13:51:35 +0000 (21:51 +0800)]
network: check result of if_nametoindex().

When we want to get index of a ifname which does not
exist, we should return a -EINVAL in this case.

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agonetwork: convert param ifname to const.
Dongsheng Yang [Thu, 11 Sep 2014 12:43:57 +0000 (20:43 +0800)]
network: convert param ifname to const.

We should not modify ifname in lxc_netdev_move_by_name(),
making it as const in param list will make our code more
robust.

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agoconf.c: Define MS_PRIVATE for Android
Stéphane Graber [Mon, 13 Oct 2014 10:50:20 +0000 (12:50 +0200)]
conf.c: Define MS_PRIVATE for Android

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agofix lxc.mount.auto clearing
Serge Hallyn [Thu, 9 Oct 2014 15:54:51 +0000 (10:54 -0500)]
fix lxc.mount.auto clearing

the way config_mount was structured, sending 'lxc.mount.auto = '
ended up actually clearing all lxc.mount.entrys.  Fix that by
moving the check for an empty value to after the subkey checks.
Then, actually do the clearing of auto_mounts in config_mount_auto.

The 'strlen(subkey)' check being removed was bogus - the subkey
either known to be 'lxc.mount.entry', else subkey would have been
NULL (and forced a return in the block above).

This would have been clearer if the config_mount() and helper
fns were structured like the rest of confile.c.  It's tempting
to switch it over, but there are subtleties in there so it's
not something to do without a lot of thought and testing.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
9 years agolxc-test-apparmor-mount: don't clear out /etc/lxc/lxc-usernet
Serge Hallyn [Thu, 9 Oct 2014 17:15:14 +0000 (12:15 -0500)]
lxc-test-apparmor-mount: don't clear out /etc/lxc/lxc-usernet

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
9 years agolxc-test-unpriv: test for different cgroups per subsystem
Serge Hallyn [Thu, 9 Oct 2014 16:24:37 +0000 (11:24 -0500)]
lxc-test-unpriv: test for different cgroups per subsystem

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
9 years agosystemd/selinux init scripts fixups
Dwight Engen [Thu, 2 Oct 2014 20:56:02 +0000 (16:56 -0400)]
systemd/selinux init scripts fixups

- RHEL/OL 7 doesn't have the ifconfig command by default so have the
  lxc-net script check for its existence before use, and fall back
  to using the ip command if ifconfig is not available

- When lxc-net is run from systemd on a system with selinux enabled,
  the mkdir -p ${varrun} will create /run/lxc as init_var_run_t which
  dnsmasq can't write its pid into, so we restorecon it
  after creation (to var_run_t)

- The lxc-net systemd .service file needs an [Install] section so that
  "systemctl enable lxc-net" will work

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
9 years agolxc-checkpoint: close stdout/stdin when daemonizing
Tycho Andersen [Tue, 30 Sep 2014 21:35:13 +0000 (21:35 +0000)]
lxc-checkpoint: close stdout/stdin when daemonizing

If we don't close these running lxc-checkpoint via:

ssh host "sudo lxc-checkpoint ..."

just hangs. We leave stderr open so that subesquent errors will print correctly
(and also because for whatever reason it doesn't break ssh :).

Signed-off-by: Tycho Andersen <tycho.andersen at canonical.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
9 years agorestore: create cgroups for criu
Tycho Andersen [Tue, 7 Oct 2014 19:33:08 +0000 (19:33 +0000)]
restore: create cgroups for criu

Previously, we let criu create the cgroups for a container as it was restoring
things. In some cases (i.e. migration across hosts), if the container being
migrated was in /lxc/u1-3, it would be migrated to the target host in
/lxc/u1-3, even if there was no /lxc/u1-2 (or worse, if there was already an
alive container in u1-3).

Instead, we use lxc's cgroup_create, and then tell criu where to restore to.

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agorestore: Hoist handler to function level
Tycho Andersen [Wed, 8 Oct 2014 17:11:50 +0000 (12:11 -0500)]
restore: Hoist handler to function level

On Tue, Oct 07, 2014 at 07:33:07PM +0000, Tycho Andersen wrote:
> This commit is in preparation for the cgroups create work, since we will need
> the handler in both the parent and the child. This commit also re-works how
> errors are propagated to be less verbose.

Here is an updated version:

From 941623498a49551411ccf185146061f3f37d3a67 Mon Sep 17 00:00:00 2001
From: Tycho Andersen <tycho.andersen@canonical.com>
Date: Tue, 7 Oct 2014 19:13:51 +0000
Subject: [PATCH 1/2] restore: Hoist handler to function level

This commit is in preparation for the cgroups create work, since we will need
the handler in both the parent and the child. This commit also re-works how
errors are propagated to be less verbose.

v2: rename error to has_error, handle it correctly, and remove some diff noise

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agocriu: DECLARE_ARG should check for null arguments
Tycho Andersen [Wed, 8 Oct 2014 17:12:04 +0000 (17:12 +0000)]
criu: DECLARE_ARG should check for null arguments

This is in preparation for the cgroups creation work, but also probably just a
good idea in general. The ERROR message is handy since we print line nos. it
will to give people an indication of what arg was null.

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
9 years agolxc-test-unpriv: don't clear out /etc/lxc/lxc-usernet
Serge Hallyn [Wed, 8 Oct 2014 16:31:52 +0000 (11:31 -0500)]
lxc-test-unpriv: don't clear out /etc/lxc/lxc-usernet

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
9 years agolxc: don't call pivot_root if / is on a ramfs
Andrey Vagin [Sat, 4 Oct 2014 21:49:16 +0000 (01:49 +0400)]
lxc: don't call pivot_root if / is on a ramfs

pivot_root can't be called if / is on a ramfs. Currently chroot is
called before pivot_root. In this case the standard well-known
'chroot escape' technique allows to escape a container.

I think the best way to handle this situation is to make following actions:
* clean all mounts, which should not be visible in CT
* move CT's rootfs into /
* make chroot into /

I don't have a host, where / is on a ramfs, so I can't test this patch.

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
9 years agocgmanager: several fixes
Serge Hallyn [Wed, 8 Oct 2014 05:14:26 +0000 (00:14 -0500)]
cgmanager: several fixes

These all fix various ways that cgroup actions could fail if an
unprivileged user's cgroup paths were not all the same for all
controllers.

1. in cgm_{g,s}et, use the right controller, not the first in the list,
   to get the cgroup path.

2. when we pass 'all' to cgmanager for a ${METHOD}_abs, make sure that all
   cgroup paths are the same.  That isn't necessary for methods not
   taking an absolute path, so split up the former
   cgm_supports_multiple_controllers() function into two booleans, one
   telling whether cgm supports it, and another telling us whether
   cgm supports it AND all controller cgroup paths are the same.

3. separately, do_cgm_enter with abs=true couldn't work if all
   cgroup paths were not the same.  So just ditch that helper and
   call lxc_cgmanager_enter() where needed, because the special
   cases would be more complicated.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
9 years agofix: grep not match interface listed by `ip link list`
Joshua Brunner [Fri, 3 Oct 2014 08:04:18 +0000 (10:04 +0200)]
fix: grep not match interface listed by `ip link list`

Interfaces listed by `ip link list` are prefixed with the index
identifier. The pattern "^$BRNAME" does not match.

 - dependencies to ifconfig and ip removed
 - wait until interface flagged with IFF_UP

Ref: https://github.com/torvalds/linux/blob/master/include/uapi/linux/if.h

Signed-off-by: Joshua Brunner <j.brunner@nexbyte.com>
9 years agotests: Fix unpriv test
Stéphane Graber [Thu, 2 Oct 2014 18:59:35 +0000 (14:59 -0400)]
tests: Fix unpriv test

Don't use $TUSER as it's not defined. Also don't include
lxc-test-usernic in extra_DIST.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agochange version to 1.1.0.alpha1 in configure.ac
Stéphane Graber [Wed, 1 Oct 2014 18:23:41 +0000 (14:23 -0400)]
change version to 1.1.0.alpha1 in configure.ac

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
9 years agopivot_root: umount ., not /
Serge Hallyn [Mon, 29 Sep 2014 22:51:35 +0000 (22:51 +0000)]
pivot_root: umount ., not /

This fixes pivot_root on 3.11 and older kernels.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>