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>
With lxc-create, this will create, map and mount a Rados blockdevice.
A valid ceph.conf and ceph.client.admin.keyring is needed in /etc/ceph/
RBD mapping is not manage on reboot.
Signed-off-by: Laurent Barbe <laurent@ksperis.com>
- explain functions in list.h
- let lxc_list_len() return size_t instead of int
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
We'll use this in the next patch to escape to the root cgroup before we
exec criu.
v2: s/cgm_connected/cmg_needs_disconnect/g
Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
Add support for new target plamo to specify the linux distribution.
Plamo Linux uses sysvinit.
Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Signed-off-by: TAMUKI Shoichi <tamuki@linet.gr.jp>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
Fold dnsmasq command line at about 80 chars because the line is too
long.
Signed-off-by: TAMUKI Shoichi <tamuki@linet.gr.jp>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>