we were initializing i to 0, then doing a while i <, but then a
separate commit (by myself) used i as a generic variable in between
those two.
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
The function
- bdev_get();
becomes static. It is called from nowhere else so far and never appeared in any
header.
Minor changes
- Avoid comparisons between int and size_t types. Use size_t where
possible else cast to size_t when it makes sense.
- insert missing spaces between operators
- put declarations for all static functions at the top
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
The functions
- clone_attach_nbd();
- do_attach_nbd();
- nbd_busy();
- nbd_detach();
- nbd_get_partition();
- wait_for_partition();
move from bdev.c to lxcnbd.c. They remain static
The functions
- attach_nbd();
- detach_nbd_idx();
- nbd_clonepaths();
- nbd_create();
- nbd_destroy();
- nbd_detect();
- nbd_mount();
- nbd_umount();
- requires_nbd();
move from bdev.c to lxcnbd.{c,h}. They all become extern.
The struct
- struct nbd_attach_data
moves from bdev.c to lxcnbd.c.
Adapt Makefile.am to include lxcnbd.{c,h}.
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 into lxcnbd.h as the functions
associated with nbd need access to it.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
The functions
- rbd_clonepaths();
- rbd_create();
- rbd_destroy();
- rbd_detect();
- rbd_mount();
- rbd_umount();
move from bdev.c to lxcrbd.{c,h}. All functions previously declared static
become extern.
Adapt Makefile.am to include lxcrbd.{c,h}.
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 into lxcrbd.h as the functions
associated with rbd need access to it.
Put:
- #define __STDC_FORMAT_MACROS
and include:
- #include <inttypes.h>
in lxcrbd.c so that the format specifier PRIu64 is available.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
The functions
- loop_clonepaths();
- loop_create();
- loop_destroy();
- loop_detect();
- loop_mount();
- loop_umount();
move from bdev.c to lxcloop.{c,h}. All functions previously declared static
become extern.
The functions
- do_loop_create();
- find_free_loopdev_no_control();
- find_free_loopdev();
move from bdev.c to lxcloop.c. They remain static.
Adapt Makefile.am to include lxcloop.{c,h}.
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 into lxcloop.h as the functions
associated with loop need access to it.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
The functions
- dir_clonepaths();
- dir_create();
- dir_destroy();
- dir_detect();
- dir_mount();
- dir_umount();
move from bdev.c to lxcdir.{c,h}. All functions which previously were static
become extern.
Adapt Makefile.am to include lxcdir.{c,h}.
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 into lxcdir.h as the functions
associated with dir need access to it.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
The functions
- aufs_clonepaths();
- aufs_create();
- aufs_destroy();
- aufs_detect();
- aufs_mount();
- aufs_umount();
move from bdev.c to lxcaufs.{c,h}. All functions which previously were static
become extern.
Adapt Makefile.am to include lxcaufs.{c,h}.
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 into lxcaufs.h as the functions
associated with aufs need access to it.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
The functions
- lvm_detect();
- lvm_mount();
- lvm_umount();
- lvm_compare_lv_attr();
- lvm_is_thin_volume();
- lvm_is_thin_pool();
- lvm_snapshot();
- lvm_clonepaths();
- lvm_destroy();
- lvm_create();
move from bdev.c to lxclvm.{c,h}. All functions previously declared as static
become public.
Adapt Makefile.am to include lxclvm.{c,h}.
The function:
- mount_unknown_fs();
becomes public.
Rationale: It is already called from different places and will be called by lvm,
and rdb. Also, it is defined twice exactly the same way. Once in conf.c
and once in bdev.c. Let's avoid that.
Defining the same function twice in different places just asks for
trouble.
The functions:
- blk_getsize();
- detect_fs();
- do_mkfs();
- is_blktype();
become public as they will be called for loop, lvm, and or rdb.
Move the definition of:
- DEFAULT_FS_SIZE
- DEFAULT_FSTYPE
from bdev.c to bdev.h to grant other modules access to it.
Remove:
- find_fstype_cb();
from conf.c. It is defined static in bdev.c
Put:
- #define __STDC_FORMAT_MACROS
and include:
- #include <inttypes.h>
in lxclvm.c so that the format specifier PRIu64 is available.
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 into lxclvm.h as the functions
associated with lvm need access to it.
Take the chance to restructure bdev.c:
- put bdev structs which have already been split out into separate
modules at the top
- put declarations of all static functions at the top (This includes
all functions associated with modules that have not yet already been
put into a separate module.)
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
The functions:
- zfs_clone();
- zfs_clonepaths();
- zfs_create();
- zfs_destroy();
- zfs_detect();
- zfs_list_entry();
- zfs_mount();
- zfs_umount();
move from bdev.c to lxczfs.{c,h}. All functions previously declared as static
become public.
Adapt Makefile.am to include lxczfs.{c,h}.
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 into lxczfs.h as the functions
associated with zfs need access to it.
Minor changes:
- Use exit(EXIT_FAILURE) instead of exit(1).
- Use brackets around else {} if the if {} did:
I.e. instead of:
if {
// do one;
// do two;
} else
// do three;
use:
if {
// do one;
// do two;
} else {
// do three;
}
- Instead of declaring char pointers and arrays on the same line, i.e.:
char arr[len], *p;
do:
char arr[len];
char *p;
which makes intentions a lot clearer.
- Since we require c99 anyway, use finer-grained scoping by declaring
variables where they are needed instead of simply at the top.
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
We were freeing one and setting a different one to NULL, eventually
leading to a crash when closing the netdev (at container shutdown)
and freeing already-freed memory.
Closes#732
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
`bash-completion` version 2.1 and later no longer include the `have` command,
and consequently the `lxc` competion file fails on such systems. The command is
now called `_have`.
Signed-off-by: Peter Simons <simons@cryp.to>
Added missing network utilities to base install for Leap. Included
check to do it for Leap 42.1 only.
Signed-off-by: Terzeus S. Dominguez <zeus@dmgznet.com>
We'll probably want to make this configurable with a
lxc.cgroupns = [1|0], but for now just always do it.
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
---
Changelog 20160104: only try to unshare if /proc/self/ns/cgroup exists.
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>