]> git.proxmox.com Git - mirror_lxc.git/log
mirror_lxc.git
10 years agochange version to 1.0.0.beta2 in configure.ac
Stéphane Graber [Thu, 16 Jan 2014 00:07:33 +0000 (19:07 -0500)]
change version to 1.0.0.beta2 in configure.ac

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoAdd local definition of sethostname to lxc_unshare
Stéphane Graber [Wed, 15 Jan 2014 23:29:57 +0000 (18:29 -0500)]
Add local definition of sethostname to lxc_unshare

sethostname doesn't exist on bionic, so copy/paste the definition of it
we have in conf.c

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-unshare: uid_t is unsigned.
Serge Hallyn [Wed, 15 Jan 2014 22:45:31 +0000 (16:45 -0600)]
lxc-unshare: uid_t is unsigned.

so we can't use uid==-1 as "don't do setuid"

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoTeach lxc_unshare about interfaces, mounts, hostname, daemonize
Seth Robertson [Wed, 4 Dec 2013 05:28:56 +0000 (00:28 -0500)]
Teach lxc_unshare about interfaces, mounts, hostname, daemonize

lxc_unshare now takes one or more '-i interfacename' arguments which
will move the named interfaces into the created container.

lxc_unshare now takes -M argument which will cause the standard mounts
(/proc /dev/shm /dev/mqueue) to be auto-mounted inside container.

lxc_unshare now takes '-H hostname' argument to automatically set
the hostname in the container.

lxc_unshare now takes -D argument to automatically daemonize and detach
from the created container, instead of waiting for the container to exit

Signed-off-by: Seth Robertson <srobertson@appcomsci.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc_unshare -u argument useful even with USER namespace shared
Seth Robertson [Wed, 4 Dec 2013 05:24:08 +0000 (00:24 -0500)]
lxc_unshare -u argument useful even with USER namespace shared

Signed-off-by: Seth Robertson <srobertson@appcomsci.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agodebian: Switch to config includes
Stéphane Graber [Wed, 15 Jan 2014 19:57:28 +0000 (14:57 -0500)]
debian: Switch to config includes

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoDisable logpath for unprivileged containers
Stéphane Graber [Wed, 15 Jan 2014 18:32:23 +0000 (13:32 -0500)]
Disable logpath for unprivileged containers

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agooracle: Fix running template unprivileged
Stéphane Graber [Wed, 15 Jan 2014 18:25:48 +0000 (13:25 -0500)]
oracle: Fix running template unprivileged

Without this /dev/console won't exist and upstart will fail to start any
job marking as "console output" including the rather important rcS.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agooracle template: default to 6.5 when no release given or detected
Dwight Engen [Wed, 15 Jan 2014 17:21:57 +0000 (12:21 -0500)]
oracle template: default to 6.5 when no release given or detected

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agooracle template: don't sed /etc/init/tty.conf on older releases
Dwight Engen [Wed, 15 Jan 2014 17:21:52 +0000 (12:21 -0500)]
oracle template: don't sed /etc/init/tty.conf on older releases

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agooracle template: convert to common.conf style
Dwight Engen [Wed, 15 Jan 2014 17:21:44 +0000 (12:21 -0500)]
oracle template: convert to common.conf style

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc.conf: note the 'lxc.network.type = none' option
Serge Hallyn [Wed, 15 Jan 2014 17:13:39 +0000 (11:13 -0600)]
lxc.conf: note the 'lxc.network.type = none' option

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoplamo: Update template to use wget when download packages
KATOH Yasufumi [Wed, 15 Jan 2014 16:55:52 +0000 (01:55 +0900)]
plamo: Update template to use wget when download packages

Signed-off-by: TAMUKI Shoichi <tamuki@linet.gr.jp>
Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoFix small mistake with squid-deb-proxy hook
Chris Glass [Wed, 15 Jan 2014 15:37:46 +0000 (16:37 +0100)]
Fix small mistake with squid-deb-proxy hook

I unfortunately realized that I did not push the latest version of the
file. This fixes an issue in the case where we want to create the proxy
file in the container (not nested).

Signed-off-by: Chris Glass <tribaal@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocgroup.c: add static keywords as they declared
Qiang Huang [Wed, 15 Jan 2014 15:32:29 +0000 (23:32 +0800)]
cgroup.c: add static keywords as they declared

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocgroup.h: unify the nameing and comments
Qiang Huang [Wed, 15 Jan 2014 15:32:30 +0000 (23:32 +0800)]
cgroup.h: unify the nameing and comments

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocgroup.c: redefine the valid cgroup name
Qiang Huang [Wed, 15 Jan 2014 04:09:26 +0000 (12:09 +0800)]
cgroup.c: redefine the valid cgroup name

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoTrailing whitespace
Stéphane Graber [Wed, 15 Jan 2014 15:33:04 +0000 (10:33 -0500)]
Trailing whitespace

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoinstall only lxc-user-nic setuid
Dwight Engen [Wed, 15 Jan 2014 13:36:28 +0000 (08:36 -0500)]
install only lxc-user-nic setuid

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodoc: Update Japanese lxc.conf(5)
KATOH Yasufumi [Wed, 15 Jan 2014 09:50:43 +0000 (18:50 +0900)]
doc: Update Japanese lxc.conf(5)

Update for commit df2d4205073d3f57543951ca7ffabf891b230634

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoAdded a commented squid-deb-proxy hook to ubuntu
Chris Glass [Wed, 15 Jan 2014 08:31:53 +0000 (09:31 +0100)]
Added a commented squid-deb-proxy hook to ubuntu

Added a commented squid-deb-proxy hook to the common ubuntu config file
as suggested when merging the squid-deb-proxy-client hook.

Signed-off-by: Chris Glass <tribaal@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-download: Fix undefined DOWNLOAD_FORCE_CACHE
Stéphane Graber [Wed, 15 Jan 2014 02:59:33 +0000 (21:59 -0500)]
lxc-download: Fix undefined DOWNLOAD_FORCE_CACHE

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-download: Fix wrong option parsing
Stéphane Graber [Wed, 15 Jan 2014 02:49:26 +0000 (21:49 -0500)]
lxc-download: Fix wrong option parsing

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-download: POSIX doesn't specify -f for chown
Stéphane Graber [Wed, 15 Jan 2014 02:31:49 +0000 (21:31 -0500)]
lxc-download: POSIX doesn't specify -f for chown

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoubuntu: Fix path to openssh-server's postinst
Stéphane Graber [Tue, 14 Jan 2014 23:12:29 +0000 (18:12 -0500)]
ubuntu: Fix path to openssh-server's postinst

The path isn't relative to @LOCALSTATEDIR@

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agodebian: Support ssh host keys regeneration
Stéphane Graber [Tue, 14 Jan 2014 23:11:29 +0000 (18:11 -0500)]
debian: Support ssh host keys regeneration

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoAlways try to create lxcpath
Stéphane Graber [Tue, 14 Jan 2014 22:54:16 +0000 (17:54 -0500)]
Always try to create lxcpath

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxccontainer.c: check lxc_conf before referance haltsignal
Qiang Huang [Wed, 15 Jan 2014 02:45:18 +0000 (10:45 +0800)]
lxccontainer.c: check lxc_conf before referance haltsignal

If we start container with rcfile(see comments in lxc_start.c), it
is possible that we have no config file in /usr/local/var/lib/lxc.
So when we try lxc_stop, lxc_container_new will not load any config
so we'll get c->lxc_conf = NULL.

In that case, we'll get Segmentation fault in lxcapi_shutdown, a
simple check would fix this.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoFix return value of userns_exec_1
Stéphane Graber [Tue, 14 Jan 2014 23:25:44 +0000 (18:25 -0500)]
Fix return value of userns_exec_1

Instead of always returning -1 and call SYSERROR when the child returns
non-zero. Have userns_exec_1 always return the return value from the
function it's calling and let the caller do the error handling (as is
already done by its only caller).

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agotests: Fix startone's call to want_daemonize
Stéphane Graber [Tue, 14 Jan 2014 22:35:14 +0000 (17:35 -0500)]
tests: Fix startone's call to want_daemonize

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-archlinux: Cleanup fstab
Stéphane Graber [Tue, 14 Jan 2014 22:24:14 +0000 (17:24 -0500)]
lxc-archlinux: Cleanup fstab

It's been brought to my attention that the read-only mount of /proc/sys
is causing problems to archlinux users, so instead just have LXC mount
proc and sysfs normally (read-write).

Reported-by: John Lane <john@lane.uk.net>
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-archlinux: optional --root_passwd argument
John Lane [Thu, 12 Dec 2013 12:17:39 +0000 (12:17 +0000)]
lxc-archlinux: optional --root_passwd argument

Signed-off-by: John Lane <john@lane.uk.net>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-archlinux: support enabling systemd units
John Lane [Thu, 12 Dec 2013 12:00:38 +0000 (12:00 +0000)]
lxc-archlinux: support enabling systemd units

Signed-off-by: John Lane <john@lane.uk.net>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-archlinux: support different architectures
John Lane [Thu, 12 Dec 2013 11:26:19 +0000 (11:26 +0000)]
lxc-archlinux: support different architectures

Signed-off-by: John Lane <john@lane.uk.net>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-archlinux: don't drop mknod capability
John Lane [Thu, 12 Dec 2013 10:35:55 +0000 (10:35 +0000)]
lxc-archlinux: don't drop mknod capability

Signed-off-by: John Lane <john@lane.uk.net>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoModify lxc-fedora and lxc-centos for multiple issues...
Michael H. Warfield [Mon, 13 Jan 2014 01:53:49 +0000 (20:53 -0500)]
Modify lxc-fedora and lxc-centos for multiple issues...

This is a reissue of two previous patches along with some additional
changes for hardening the root password process based on discussions
on-list.

--
This patch modifies the lxc-fedora and lxc-centos templates for 3 things.

1) Extensively modifies root password generation, storage, and management
    based on discussions on the devel list.

  Root passwords are hardened and have advanced configurability.
    A static password may be provided.
    A password based on a template may be generated, including ${RANDOM}.
    A password may be generated through mktmp using a template with X's.
    Root passwords default to expired, initially.
    Passwords may optionally be echoed to stdout at container creation. (no)
    Passwords may optionally be stored in ${rootfs_path}/tmp_root_pass. (yes)
    Users may be optionally forced to change the password at creation time. (no)
    Default is to generate a pattern based password and store, no force change.
    All of this may be overridden by environment variables through
      conditional assignment.

2) Random static hardware addresses are generated for all configured
    interfaces.

3) Add code to create sysv init style scripts to intercept shutdown and
    reboot to prevent init restart and hang for CentOS and legacy Fedora
    systems on shutdown, reboot, init 0, and init 6.  This solves a variety
    of hang conditions but only affects newly created containers.  Does
    not have any impact on systemd based containers.

Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoubuntu: Set default hwaddr to match template
Stéphane Graber [Tue, 14 Jan 2014 21:54:07 +0000 (16:54 -0500)]
ubuntu: Set default hwaddr to match template

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agogentoo: Initial template
lxc@zitta.fr [Mon, 13 Jan 2014 23:06:26 +0000 (00:06 +0100)]
gentoo: Initial template

Signed-off-by: gza <lxc@zitta.fr>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoapi change: default container->daemonize to true
Serge Hallyn [Mon, 13 Jan 2014 17:08:48 +0000 (11:08 -0600)]
api change: default container->daemonize to true

Pretty much the only case where we do NOT want to daemonize
a container start is lxc-start.  So make c->daemonize true
by default, and have lxc-start set it to false.

If there are existing API users who rely on daemonize by
default, then they will be broken by this.  It seems we should
do this before beta1 if we're going to do it.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoMake ubuntu templates squid-deb-proxy-client aware
Chris Glass [Thu, 9 Jan 2014 16:40:12 +0000 (16:40 +0000)]
Make ubuntu templates squid-deb-proxy-client aware

This makes the ubuntu and ubuntu-cloud templates automatically aware of apt
proxy settings when the LXC host has "squid-deb-proxy-client" installed. This
makes installations *much* faster when a suitable squid-deb-proxy is
found on the network (or installed on the host).

Signed-off-by: Chris Glass <tribaal@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agohandle simple bashisms:
Elan Ruusamäe [Mon, 13 Jan 2014 08:26:09 +0000 (10:26 +0200)]
handle simple bashisms:

- [[ ]] -> [ ]
- == -> =
- source -> .
- redirect of fd 200 is error in mksh, use fd 9
- &> /dev/null -> > /dev/null 2>&1
- useless function keyword
- echo -e -> printf

still left bash shebang which did not validate with checkbashism, mostly
due 'type' being reported as bashism

Signed-Off-By: Elan Ruusamäe <glen@delfi.ee>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-start-ephemeral: Fix syntax error in aufs
Åsmund Grammeltvedt [Mon, 13 Jan 2014 22:34:57 +0000 (23:34 +0100)]
lxc-start-ephemeral: Fix syntax error in aufs

Signed-off-by: Åsmund Grammeltvedt <asmundg@snap.tv>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodownload: Improve cache handling
Stéphane Graber [Tue, 14 Jan 2014 20:02:42 +0000 (15:02 -0500)]
download: Improve cache handling

This adds a new --force-cache parameter which will force use of the
cache even for expired images.

An expired image is now only flushed from the cache once a new one is
successfuly downloaded (to avoid destroying the local cache when the
host doesn't have internet connectivity).

The ID of the build in cache is also tracked so that we don't
re-download something we already have (should only happen if we don't
have a new build published by the time the previous one expires).

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agodownload: Support listing available images
Stéphane Graber [Tue, 14 Jan 2014 19:48:24 +0000 (14:48 -0500)]
download: Support listing available images

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agodownload: Don't use an hardcoded exclude list
Stéphane Graber [Tue, 14 Jan 2014 19:12:33 +0000 (14:12 -0500)]
download: Don't use an hardcoded exclude list

Instead of hardcoding --exclude=./dev/*, use a new metadata file
"excludes" which lists all the paths or patterns to exclude during
extraction (one per line).

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agodownload: Fix download_sig logic
Stéphane Graber [Tue, 14 Jan 2014 18:56:04 +0000 (13:56 -0500)]
download: Fix download_sig logic

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agodoc: Update lxc.conf(5)
KATOH Yasufumi [Tue, 14 Jan 2014 06:51:47 +0000 (15:51 +0900)]
doc: Update lxc.conf(5)

* Update Japanese lxc.conf(5) for commit 508c263ee6ed2fac73f6979af287caba38963b4b
* Remove duplicate line in English lxc.conf(5)

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodownload: don't download signatures when --no-validate given
Dwight Engen [Tue, 14 Jan 2014 01:04:56 +0000 (20:04 -0500)]
download: don't download signatures when --no-validate given

- show full path to failed download location

- change test to -f in case meta.tar.xz:templates has a blank line it
  won't attempt to sed a directory

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoAdd minimal userns config for plamo
Stéphane Graber [Mon, 13 Jan 2014 22:06:01 +0000 (17:06 -0500)]
Add minimal userns config for plamo

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocgroup: move all some functions into cgroup.h
Serge Hallyn [Mon, 13 Jan 2014 21:26:49 +0000 (15:26 -0600)]
cgroup: move all some functions into cgroup.h

Some functions which wanted to know about cgroup paths were located
in other files.  Move them into cgroup.c, so that all knowledge of
the cgroup backend can be colocated.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoinclude: remove duplicates
Luka Perkov [Mon, 13 Jan 2014 17:46:55 +0000 (17:46 +0000)]
include: remove duplicates

Signed-off-by: Luka Perkov <luka.perkov@sartura.hr>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoinclude: cleanup unnecessary getline defines
Luka Perkov [Mon, 13 Jan 2014 17:46:50 +0000 (17:46 +0000)]
include: cleanup unnecessary getline defines

The removed chunk is already defined in utils.h which
is included in modified files.

Signed-off-by: Luka Perkov <luka.perkov@sartura.hr>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agofix bug setting autodef in config
Dwight Engen [Mon, 13 Jan 2014 17:46:55 +0000 (12:46 -0500)]
fix bug setting autodef in config

Introduced in commit df2d4205.

Reported-by: S.Çağlar Onur <caglar@10ur.org>
Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agointroduce a simple test for testing add_device_node and remove_device_node
S.Çağlar Onur [Mon, 13 Jan 2014 05:34:13 +0000 (00:34 -0500)]
introduce a simple test for testing add_device_node and remove_device_node

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoThis change introduce mac address templating.
Serge Hallyn [Mon, 13 Jan 2014 16:02:29 +0000 (10:02 -0600)]
This change introduce mac address templating.

By setting lxc.network.hwaddr to something like fe:xx:xx:xx:xx:xx each
"x" will be replaced by a random value.  If less significant bit of
first byte is "templated", it will be set to 0.

This change introduce also a common randinit() function that could be
used to initialize random generator.

Signed-off-by: gza <lxc@zitta.fr>
Acked-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoplamo: Update template to use lxc.include and add plamo.common.conf
KATOH Yasufumi [Mon, 13 Jan 2014 11:57:53 +0000 (20:57 +0900)]
plamo: Update template to use lxc.include and add plamo.common.conf

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agointroduce lxc-unpriv test
Serge Hallyn [Mon, 13 Jan 2014 02:45:00 +0000 (20:45 -0600)]
introduce lxc-unpriv test

It simply creates a test user and tries to create and start
a container as that user.  Tries to lxc-attach to that
container to test network connectivity.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agousernsexec: don't fail if we can't open pty
Serge Hallyn [Mon, 13 Jan 2014 02:44:32 +0000 (20:44 -0600)]
usernsexec: don't fail if we can't open pty

It's nice if we can do it, but not required.  Exiting on this
failure causes lxc-create started by root as a less-privileged
userid to fail.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoensure all config items are duplicated on clone/write_config
Dwight Engen [Thu, 9 Jan 2014 20:36:13 +0000 (15:36 -0500)]
ensure all config items are duplicated on clone/write_config

Since previously I had found a config item that wasn't being propagated
by lxc-clone, I went through all the config items and made sure that:
 a) Each item is documented in lxc.conf
 b) Each item is written out by write_config

The only one that isn't is lxc.include, which by its nature only pulls
in other config item types.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agocgroup: recursively delete cgroups when asked
Serge Hallyn [Sat, 11 Jan 2014 06:14:26 +0000 (00:14 -0600)]
cgroup: recursively delete cgroups when asked

Currently when a container is shut down, lxc walks the set of all
cgroup paths it created, in reverse order, and tries to remove them.
This doesn't suffice if the container has also created new cgroups.

It'd be impolite to recursively remove all the cgroup paths we created,
since this can include '/lxc' and thereunder all other containers
started since.

This patch changes container shutdown to only delete the container's own
path, but do so recursively.  Note that if we fail during startup,
the container won't have created any cgroup paths so it the old
way works fine.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodownload: Initial template
Stéphane Graber [Fri, 10 Jan 2014 22:28:07 +0000 (17:28 -0500)]
download: Initial template

This adds a new template called "download". It's a fairly simple
template with a minimal set of dependency which will grab any pre-built
image available on https://images.linuxcontainers.org
Note that the serverside is still work in progress (missing SSL support).

Access is done over https by default with a warning being emitted if
fallback to http was required (may be needed for testing, when behind
proxy and with private servers). All index files and tarballs are
gpg-signed with the default pubkeyid contained in the template itself.

The main benefit of this template is to be entirely
distribution-agnostic, any template that can be integrated with the
server build infrastructure will then work on any LXC machine when using
the download template. This template is also compatible with user
namespaces and will hopefully help widden the number of distros that may
work in unprivileged LXC.

This commit also bundles a small change to the template configs to have
the ubuntu template (used by the download template) to work with
unprivileged LXC.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoFix some typos
Stéphane Graber [Sun, 12 Jan 2014 20:48:48 +0000 (15:48 -0500)]
Fix some typos

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoOne more rename of the system options
Stéphane Graber [Fri, 10 Jan 2014 20:33:33 +0000 (15:33 -0500)]
One more rename of the system options

This should be the last change of name for those options. This change
basically move them all to lxc.bdev.<backend>.<option>.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoFix bug in preserve_ns
Serge Hallyn [Sat, 11 Jan 2014 03:48:30 +0000 (21:48 -0600)]
Fix bug in preserve_ns

If /proc/self/ns does not exist, then preserve_ns was failing to
initialize the saved_ns[i] to -1.  This caused attach_ns() to try
and attach, and of course fail.

Initialize the saved ns values before returning an error.

The return values of preserve_ns and attach_ns were also being
ignored.  Honor them.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoDrop usage of LXC_DEFAULT_CONFIG in our code
Stéphane Graber [Thu, 9 Jan 2014 23:05:22 +0000 (18:05 -0500)]
Drop usage of LXC_DEFAULT_CONFIG in our code

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoRe-organize API for global lxc.conf config
Stéphane Graber [Thu, 9 Jan 2014 22:31:52 +0000 (17:31 -0500)]
Re-organize API for global lxc.conf config

Instead of having one function for each possible key in lxc.conf which
doesn't really scale and requires an API update for every new key,
switch to a generic lxc_get_global_config_item() function which takes a
key name as argument.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoAdd lxc.default_config to LXC's own config
Stéphane Graber [Thu, 9 Jan 2014 22:05:25 +0000 (17:05 -0500)]
Add lxc.default_config to LXC's own config

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoRename all lxc.conf options to lxc.<key>
Stéphane Graber [Thu, 9 Jan 2014 21:54:37 +0000 (16:54 -0500)]
Rename all lxc.conf options to lxc.<key>

This is a first step in bringing the lxc.conf configfile in line with
the container's format.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agodoc: Remove unneeded "SEE ALSO" part in lxc-ls(1)
KATOH Yasufumi [Thu, 9 Jan 2014 06:53:40 +0000 (15:53 +0900)]
doc: Remove unneeded "SEE ALSO" part in lxc-ls(1)

The old version of lxc-ls is the wrapper of ls(1). But now it is
python script, so "see also ls(1)" is not needed.

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoSupport large bdevs on 32-bit; MB units by default.
Stephen Ayotte [Thu, 2 Jan 2014 19:30:26 +0000 (14:30 -0500)]
Support large bdevs on 32-bit; MB units by default.

Change all instances of "unsigned long" where referring to a bdev size
to uint64_t; this fixes some overflows on 32-bit machines, where
"unsigned long" is uint32_t. Support all unit-sizes supported by LVM
except 's' and 'e' [bkmgt]. Print a warning and use default bdev-size if
invalid unit-size specified.

Signed-off-by: Stephen Ayotte <stephen.ayotte@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-ls.sgml.in: fix the format issue
Qiang Huang [Wed, 8 Jan 2014 09:11:20 +0000 (17:11 +0800)]
lxc-ls.sgml.in: fix the format issue

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agotravis: Use NOTICE instead of PRIVMSG on IRC
Stéphane Graber [Tue, 7 Jan 2014 17:14:15 +0000 (12:14 -0500)]
travis: Use NOTICE instead of PRIVMSG on IRC

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoMove pkg-config init to way earlier
Stéphane Graber [Tue, 7 Jan 2014 16:24:36 +0000 (11:24 -0500)]
Move pkg-config init to way earlier

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-opensuse: add perl-base to prerequisities
Jiri Slaby [Fri, 20 Sep 2013 14:39:50 +0000 (16:39 +0200)]
lxc-opensuse: add perl-base to prerequisities

It is needed by insserv-compat.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoconfigure: find seccomp using pkg-config
Jiri Slaby [Wed, 24 Apr 2013 08:46:21 +0000 (10:46 +0200)]
configure: find seccomp using pkg-config

On suse we have the header in a subdir inside /usr/include, so
pkgconfig has to be used to find out proper CFLAGS.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoman: Fix comment syntax
Stéphane Graber [Tue, 7 Jan 2014 15:26:16 +0000 (10:26 -0500)]
man: Fix comment syntax

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxclock: fix stupid scope error
Serge Hallyn [Tue, 7 Jan 2014 15:20:25 +0000 (09:20 -0600)]
lxclock: fix stupid scope error

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agolxclock: fall back to /tmp if xdg_rundir is not writeable
Serge Hallyn [Tue, 7 Jan 2014 05:39:02 +0000 (23:39 -0600)]
lxclock: fall back to /tmp if xdg_rundir is not writeable

This happens for instance if you run a test under sudo which
then runs lxc commands under 'su - <someuser>'

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodoc: Update Japanese lxc-stop(1), lxc.conf(5), lxc-start-ephemeral(1)
KATOH Yasufumi [Tue, 7 Jan 2014 12:54:15 +0000 (21:54 +0900)]
doc: Update Japanese lxc-stop(1), lxc.conf(5), lxc-start-ephemeral(1)

* nokill option of lxc-stop (commit 84fbfcb434f5a59680b7f017bbc1d0db0b81a39d)
* lxc.haltsignal in lxc.conf (commit f0f1d8c076ae93d8ecf735c2eeae471e27ca6abd)
* fix sgml (commit d438f5a0ef0f304917e227405d26aef6e7b30303)

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoSetting lxc.console = none causes startup failures for the containers that runs in...
S.Çağlar Onur [Mon, 6 Jan 2014 21:01:10 +0000 (16:01 -0500)]
Setting lxc.console = none causes startup failures for the containers that runs in user namespace

Setting "lxc.console = none" causes following failure during startup

      lxc-start 1389039861.061 INFO     lxc_start_ui - using rcfile lxcpath/original/config
      lxc-start 1389039861.062 INFO     lxc_confile - read uid map: type u nsid 0 hostid 260000 range 10000
      lxc-start 1389039861.062 INFO     lxc_confile - read uid map: type g nsid 0 hostid 260000 range 10000
      lxc-start 1389039861.062 WARN     lxc_log - lxc_log_init called with log already initialized
      lxc-start 1389039861.065 INFO     lxc_lsm - LSM security driver AppArmor
      lxc-start 1389039861.066 DEBUG    lxc_conf - allocated pty '/dev/pts/0' (5/6)
      lxc-start 1389039861.066 DEBUG    lxc_conf - allocated pty '/dev/pts/7' (7/8)
      lxc-start 1389039861.066 DEBUG    lxc_conf - allocated pty '/dev/pts/8' (9/10)
      lxc-start 1389039861.066 DEBUG    lxc_conf - allocated pty '/dev/pts/9' (11/12)
      lxc-start 1389039861.066 INFO     lxc_conf - tty's configured
      lxc-start 1389039861.066 DEBUG    lxc_start - sigchild handler set
      lxc-start 1389039861.066 ERROR    lxc_conf - Error chowning
      lxc-start 1389039861.066 ERROR    lxc_conf - Failed to chown
      lxc-start 1389039861.066 ERROR    lxc_start - Failed to shift tty into container
      lxc-start 1389039861.066 ERROR    lxc_start - failed to initialize the container
      lxc-start 1389039861.067 INFO     lxc_monitor - using monitor sock name lxc/0863ffed81827105/lxcpath

fix it by checking the console.name before using it.

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agodisable generating documentation for travis
S.Çağlar Onur [Mon, 6 Jan 2014 20:05:24 +0000 (15:05 -0500)]
disable generating documentation for travis

doxygen and graphviz causes travis vm to download ~400 MB from internet
and causes travis builds to timeouts occasionally.

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoallow multiple types of init scripts to be configured
Dwight Engen [Mon, 6 Jan 2014 19:05:12 +0000 (14:05 -0500)]
allow multiple types of init scripts to be configured

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoconfigure.ac: add docbook-to-man to dbparsers
Qiang Huang [Mon, 6 Jan 2014 02:53:15 +0000 (10:53 +0800)]
configure.ac: add docbook-to-man to dbparsers

Debian and Ubuntu uses docbook2x-man, but some other distr like suse
uses docbook-to-man. I think all of them should work on LXC.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoadd lxc.haltsignal for soft shutdown
Dwight Engen [Mon, 6 Jan 2014 17:30:02 +0000 (12:30 -0500)]
add lxc.haltsignal for soft shutdown

- use this in the busybox template since busybox's init expects
  to receive SIGUSR1 to halt

- fix lxc.stopsignal to be output by write_config so lxcapi_clone()
  and lxcapi_save_config() will output it

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoUse the cgroup name for cpuset for lxc-ps
Nick Huber [Tue, 31 Dec 2013 20:05:50 +0000 (12:05 -0800)]
Use the cgroup name for cpuset for lxc-ps

On my Ubuntu 13.10 system, lxc-ps was always giving empty output. The
output of /proc/$initpid/cgroup was

11:name=systemd:/user/1000.user/c3.session
10:hugetlb:/container
9:perf_event:/container
8:blkio:/container
7:freezer:/container
6:devices:/container
5:memory:/container
4:cpuacct:/container
3:cpu:/container
2:cpuset:/container

Using the cpuset line should be a safer option.

Signed-off-by: Nick Huber <nicholashuber@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-start-ephemeral: fix the man page
Qiang Huang [Mon, 6 Jan 2014 03:33:38 +0000 (11:33 +0800)]
lxc-start-ephemeral: fix the man page

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agorename lxc-stop shutdown argument to nokill
Dwight Engen [Fri, 3 Jan 2014 19:36:43 +0000 (14:36 -0500)]
rename lxc-stop shutdown argument to nokill

This makes the arguments between lxc-stop and lxc-autostart more
consistent, so that --shutdown doesn't have two different meanings.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodoc: Update man pages to the latest information
KATOH Yasufumi [Mon, 6 Jan 2014 09:05:39 +0000 (18:05 +0900)]
doc: Update man pages to the latest information

* lxc-attach(1): Update to the status of kernel 3.8 or higher
* lxc-create(1), lxc-destroy(1): Now lxc-ls don't have "-l" option, so remove
* lxc(7): update description of lxc-ls and lxc-info to current version
* see-also: fix lxc(1) to lxc(7)

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodoc: Update Japanese lxc-autostart(1)
KATOH Yasufumi [Mon, 6 Jan 2014 05:45:55 +0000 (14:45 +0900)]
doc: Update Japanese lxc-autostart(1)

Update for commit a771fe18d28890cfc545995fb818aa7472744fde

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocheck pthread_atfork and thread-local storage
S.Çağlar Onur [Sat, 4 Jan 2014 05:00:04 +0000 (00:00 -0500)]
check pthread_atfork and thread-local storage

Add pthread_atfork check to configure.ac and uses it when necessary,
Introduces tls.m4 macro for checking thread-local storage support, Puts
values array into thread-local storage
(lxc_global_config_value@src/lxc/utils.c), Removes
static_lock/static_unlock from LXC code.

Lastly, it introduces a warning for bionic users about multithreaded
usage of LXC.

(requires 64b1be2903078ef9e9ba3ffcbc30a4dc9bc5cc6c to be reverted first)

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoRevert "Revert "Use pthread_atfork() to unlock mutexes after fork()""
Stéphane Graber [Mon, 6 Jan 2014 14:45:18 +0000 (09:45 -0500)]
Revert "Revert "Use pthread_atfork() to unlock mutexes after fork()""

This reverts commit 64b1be2903078ef9e9ba3ffcbc30a4dc9bc5cc6c.

Reverting in preparation for another implementation which is
bionic-compatible.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoadd lxc-autostart support for sysv init systems
Dwight Engen [Tue, 31 Dec 2013 19:21:55 +0000 (14:21 -0500)]
add lxc-autostart support for sysv init systems

This change updates the way init scripts get installed so that more
than one init system can be supported. Instead of installing the
systemd service file from the spec file, it should be installed at
make install time, so that someone compiling from source also gets
the unit file installed.

Update the plamo template to use a lock file not named just
/var/lock/subsys/lxc since the presence of that file is used by
sysv init rc file to know if it should run the K01lxc script. This
also makes it consistent with the other templates which use
/var/lock/subsys/lxc-$template-name.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agosnapshot: enforce keeping same backing store type (v2)
Serge Hallyn [Wed, 1 Jan 2014 19:43:35 +0000 (13:43 -0600)]
snapshot: enforce keeping same backing store type (v2)

Stéphane noticed that lxc-snapshot of a dir-backed container
created an overlayfs container.  The expectation is that the
user can continue to modify the original container and later make
a new snapshot, but this doesn't work with the existing behavior -
the overlayfs clone will end up with the modified contents.

So add a 'LXC_CLONE_KEEPBDEVTYPE' flag, which c->snapshot()
passes to c->clone().

Also add a LXC_CLONE_MAYBE_SNAPSHOT.  If this is set and a
backing store does not support snapshotting, then proceed with
a copy clone.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agochange lxc-autostart shutdown to behave like lxc-stop
Dwight Engen [Tue, 31 Dec 2013 19:21:49 +0000 (14:21 -0500)]
change lxc-autostart shutdown to behave like lxc-stop

It is desirable to have a mode where a soft shutdown is requested,
but then do a hard shutdown if after some time period the container
has not shut down. This the default behaviour of lxc-stop, but is
not currently possible with lxc-autostart. This change makes this
the default behaviour when shutdown is specified to lxc-autostart.
This will be very useful for init scripts.

An indefinte wait for soft shutdown (though I'm not sure how that
would be useful) is still possible by passing a timeout of 0.

Change default timeout value to 60 seconds to match lxc-stop

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoAdditional logic for dealing with container shutdown / reboot
Michael H. Warfield [Sat, 28 Dec 2013 17:35:05 +0000 (12:35 -0500)]
Additional logic for dealing with container shutdown / reboot

Additional logic for dealing with container shutdown / reboot

Fix a problem with CentOS containers and legacy Fedora (<16) containers
not shutting down or rebooting properly.  Copy /etc/init.d/halt to
/etc/init.d/lxc-halt, deleting everything from the "hwclock save" and
all after and append a force halt or reboot at the end of the new
script, to prevent reexecing init.  Link that script in as
S00lxc-halt in rc0.d and S00lxc-reboot in rc6.d to intercept the
shutdown process before it gets to S01halt / S01reboot causing the hang.

Fixed some typos in the CentOS template that were introduced in the
previous patch for hwaddr settings and missed in regression testing.

Cleaned up some instruction typos and tabs from previous patch.

Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoBring static and const to tests too
Andrey Mazo [Wed, 25 Dec 2013 12:03:43 +0000 (16:03 +0400)]
Bring static and const to tests too

Signed-off-by: Andrey Mazo <mazo@telum.ru>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoMark functions as static and arguments/arrays as const where possible
Andrey Mazo [Tue, 24 Dec 2013 17:08:13 +0000 (21:08 +0400)]
Mark functions as static and arguments/arrays as const where possible

Mark most of functions that are used within only one file as static.
After 95ee490bbdb97ab2b4f1dfa63a0a26e0dd1c2f17 it's easy to prove they
are not in public API.
Several arrays and structs are also marked static.
This prevents them from being exported from liblxc.so

List of removed previously exported symbols:
bdevs
btrfs_ops
check_autodev
create_partial
dir_ops
dump_stacktrace
get_mapped_rootid
get_next_index
lock_mutex
loop_ops
lvm_ops
lxc_abort
lxcapi_clone
lxc_attach_drop_privs
lxc_attach_get_init_uidgi
lxc_attach_getpwshell
lxc_attach_remount_sys_pr
lxc_attach_set_environmen
lxc_attach_to_ns
lxc_clear_saved_nics
lxc_config_readline
lxc_devs
lxc_free_idmap
lxc_global_config_value
lxc_poll
lxc_proc_get_context_info
lxc_set_state
lxc_spawn
mk_devtmpfs
mount_check_fs
ongoing_create
overlayfs_destroy
overlayfs_ops
prepend_lxc_header
remove_partial
save_phys_nics
setup_pivot_root
signames
static_mutex
thread_mutex
unlock_mutex
unpriv_assign_nic
zfs_ops

Signed-off-by: Andrey Mazo <mazo@telum.ru>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoRevert "Use pthread_atfork() to unlock mutexes after fork()"
Serge Hallyn [Thu, 2 Jan 2014 15:40:16 +0000 (09:40 -0600)]
Revert "Use pthread_atfork() to unlock mutexes after fork()"

This reverts commit 84e9e197933e601b66480da578b92630ebedfc72, because
it breaks bionic builds.  The patch is desirable so hopefully we can
come up with a solution or alternate patch soon.

10 years agodoc: Improve Japanese man pages
KATOH Yasufumi [Fri, 27 Dec 2013 16:35:22 +0000 (01:35 +0900)]
doc: Improve Japanese man pages

* Improve Japanese translation
* Fix mis-translation
* Insert linefeed between paragraph, because some paragraph is too
  long, so sometimes git send-email could not use.

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoUse pthread_atfork() to unlock mutexes after fork()
Andrey Mazo [Mon, 30 Dec 2013 11:06:25 +0000 (15:06 +0400)]
Use pthread_atfork() to unlock mutexes after fork()

Signed-off-by: Andrey Mazo <mazo@telum.ru>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>