and continue without them if possible. This allows an unpriv user
who only has a few cgroups he owns to still use lxc.
This patch only handles cgmanger - we need to handle this in cgfs too.
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
* Add long options if not be written
* Remove optional tags in OPTIONS section
Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
network.c:is_wlan() File Leak f f initialized at line 156 with fopen f
leaks when fopen(path, r) != NULL at line 156 and physname == NULL at
line 163.
Signed-off-by: Wim Coekaerts <wim.coekaerts@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
Linux for SPARC is a free community Linux distribution for SPARC hosted by Oracle. See : https://oss.oracle.com/projects/linux-sparc
While the distribution is based on Oracle Linux it does have some differences and since it's not actually Oracle Linux I decided to add a separate template rather than having the Oracle Linux template also support Linux for SPARC.
This patch adds the lxc-template for Linux for SPARC and it also adds Linux for SPARC in the configure.ac as a distribution target to build.
Signed-off-by: Wim Coekaerts <wim.coekaerts@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
Using
#include <sys/types.h>
is not sufficient to guarantee that __le64 and other types are defined.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
The struct
struct ovl_rsync_data {
struct bdev *orig;
struct bdev *new;
};
is simply a duplicate of
struct rsync_data {
struct bdev *orig;
struct bdev *new;
};
So let's replace any references to ovl_rsync_data with rsync_data.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
The functions:
- do_rsync();
- rsync_delta();
- rsync_delta_wrapper();
- rsync_rootfs();
- rsync_rootfs_wrapper();
and the structs
- struct rsync_data;
- struct rsync_data_char;
move from bdev.{c,h} to lxcrsync.{c.h}. All functions previously declared as
static become public.
lxcrsync.{c,h} should allow for a reasonable amount of abstraction regarding
our rsync functions. Some of the functions could easily be abstracted.
Adapt Makefile.am to include lxcrsync.{c,h}.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
Declare
- btrfs_same_fs();
- btrfs_snapshot();
extern instead of static in lxcbtrfs.h. They are defined in lxcbtrfs.c.
Forward declare/put
- struct bdev; /* defined in bdev.h */
- struct bdev_specs; /* defined in lxccontainer.h */
- struct lxc_conf; /* defined conf.h */
as incomplete types in lxcbtrfs.h so that functions declared and defined in
lxcbtrfs.{c,h} have access to it.
Declare
- dir_new_path();
in lxcbtrfs.c. It is defined in lxccontainer.c.
Move definition of struct
- struct rsync_data_char;
from bdev.c to bdev.h because the functions in lxcbtrfs.{c,h} need to access it.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
Using
#include <sys/types.h>
is not sufficient to guarantee that __le64 and other types are defined.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
The struct
struct ovl_rsync_data {
struct bdev *orig;
struct bdev *new;
};
is simply a duplicate of
struct rsync_data {
struct bdev *orig;
struct bdev *new;
};
So let's replace any references to ovl_rsync_data with rsync_data.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
The functions:
- do_rsync();
- rsync_delta();
- rsync_delta_wrapper();
- rsync_rootfs();
- rsync_rootfs_wrapper();
and the structs
- struct rsync_data;
- struct rsync_data_char;
move from bdev.{c,h} to lxcrsync.{c.h}. All functions previously declared as
static become public.
lxcrsync.{c,h} should allow for a reasonable amount of abstraction regarding
our rsync functions. Some of the functions could easily be abstracted.
Adapt Makefile.am to include lxcrsync.{c,h}.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
Declare
- btrfs_same_fs();
- btrfs_snapshot();
extern instead of static in lxcbtrfs.h. They are defined in lxcbtrfs.c.
Forward declare/put
- struct bdev; /* defined in bdev.h */
- struct bdev_specs; /* defined in lxccontainer.h */
- struct lxc_conf; /* defined conf.h */
as incomplete types in lxcbtrfs.h so that functions declared and defined in
lxcbtrfs.{c,h} have access to it.
Declare
- dir_new_path();
in lxcbtrfs.c. It is defined in lxccontainer.c.
Move definition of struct
- struct rsync_data_char;
from bdev.c to bdev.h because the functions in lxcbtrfs.{c,h} need to access it.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
As lxc_attach() calls fork() PyOS_AfterFork should be called in the new
process if the Python interpreter will continue to be used.
Signed-off-by: Danil Osherov <shindo@yandex-team.ru>
This option is only available in recent master of criu, so let's require
that since we're using it.
Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
Since we can rename a container on a migrate, let's tell CRIU to use the
LSM profile name the user has specified. This change is motivated by LXD,
which sets an LSM profile name based on the container name, so if a user
changes the name of a container during migration, the old profile name
(that criu has saved) won't exist on the new host.
Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
Move
- ovl_get_rootfs_dir()
- mount_entry_create_overlay_dirs()
from conf.h to overlay.{c,h} where they belong.
Rename
- mount_entry_create_overlay_dirs() --> ovl_mkdir()
in accordance with the ovl_ prefix naming scheme for types and functions
associated with overlay.
Take the chance to add whitespace between operators where missing.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
With this commit we start to split bdev.{c,h} into modules located in the
subfolder bdev. We start by creating a module for overlay: overlay.{c,h}.
- The functions:
- overlayfs_detect()
- overlayfs_mount()
- overlayfs_umount()
- overlayfs_clonepaths()
- overlayfs_destroy()
- overlayfs_create()
move from bdev.{c,h} to overlay.{c,h}. The only thing that remains in bdev.c
is the static definition of
- static const struct bdev_ops overlayfs_ops
- The functions:
- update_ovl_paths()
- overlay_getlower()
move from lxccontainer.c to overlay.{c,h}. update_ovl_paths() is used to
update absolute paths for overlay lxc.mount.entry entries but it seems to fit
more here than into lxccontainer.c.
The Function overlay_getlower() is used to extract the lower directory for
overlay (and aufs) rootfs. It should at some point become a common helper.
- The functions:
- do_rsync()
- dir_new_path()
remain in bdev.c for now but become extern. We declare them extern in
overlay.c to be able to call them. As the comment to them correctly notices,
they should at some point become common helpers and probably move to
utils.{c,h} or some other more appropriate place.
- The structs:
- struct bdev; /* defined in bdev.h */
- struct bdev_specs; /* defined in lxccontainer.h */
- struct lxc_conf; /* defined conf.h */
are forward declared/put as incomplete types in overlay.h so that the
functions have access to it.
- The header overlay.h is *not* included in bdev.h but only in bdev.c so that
when bdev.h is included the public functions in overlay.h cannot be accessed,
i.e. if an implementation wants to call functions from overlay.h they need to
explicitly include it. (As is e.g. done in the case of lxccontainer.c.)
- The header
- lxc-btrfs.h
also moves to the bdev subfolder.
- Adapt Makefile.am to the new bdev layout.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
zgrep is a script provided by the 'gzip' package, which may not be
installed on embedded systems etc which use busybox instead of the
standard full-featured utilities.
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>