1. 12 Jan, 2016 7 commits
    • Split bdev into modules: lxclvm · 2b9cbd53
      Christian Brauner authored
      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: 's avatarChristian Brauner <christian.brauner@mailbox.org>
    • Split bdev into modules: lxczfs · 8907f444
      Christian Brauner authored
      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: 's avatarChristian Brauner <christian.brauner@mailbox.org>
    • Merge pull request #750 from peti/patch-1 · 4dbfaf30
      Stéphane Graber authored
      bash completion: the 'have' command was deprecated in favor of '_have'
    • Merge pull request #760 from hallyn/2016-01-11/btrfs · 63ecff35
      Stéphane Graber authored
      copy_storage: try to use snapshot for btrfs
    • Merge pull request #761 from hallyn/2016-01-11/preservens.1 · 52ba9c54
      Stéphane Graber authored
      preserve inherited fds for stop hook
    • preserve inherited fds for stop hook · 330cbe36
      Serge Hallyn authored
      When preserving fds for the stop hook, make sure to also save
      any fds we've inherited.
      Signed-off-by: 's avatarSerge Hallyn <serge.hallyn@ubuntu.com>
    • Set the right variable to NULL when unsetting ipv6_gateway · ffe34437
      Serge Hallyn authored
      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: 's avatarSerge Hallyn <serge.hallyn@ubuntu.com>
  2. 11 Jan, 2016 2 commits
  3. 08 Jan, 2016 5 commits
  4. 06 Jan, 2016 1 commit
  5. 04 Jan, 2016 15 commits
  6. 01 Jan, 2016 1 commit
  7. 30 Dec, 2015 1 commit
  8. 28 Dec, 2015 8 commits
    • Merge pull request #734 from brauner/2015-12-12/split_bdev_into_modules · cb65e5d7
      Serge Hallyn authored
      split bdev into modules: btrfs + rsync
    • Add <linux/types.h> header to lxcbtrfs.h · c40c5fdf
      Christian Brauner authored
      Using
      
      	#include <sys/types.h>
      
      is not sufficient to guarantee that __le64 and other types are defined.
      Signed-off-by: 's avatarChristian Brauner <christian.brauner@mailbox.org>
    • Simplify overlay.{c,h} · 3188197d
      Christian Brauner authored
      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: 's avatarChristian Brauner <christian.brauner@mailbox.org>
    • Split bdev into modules: lxcrsync · e9df7e1a
      Christian Brauner authored
      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: 's avatarChristian Brauner <christian.brauner@mailbox.org>
    • lxcbtrfs.{c,h} rework declarations and definitions · 988be9c1
      Christian Brauner authored
      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: 's avatarChristian Brauner <christian.brauner@mailbox.org>
    • Split bdev into modules: btrfs · 3c16d0cb
      Christian Brauner authored
      Create a module for btrfs: lxcbtrfs.{c,h}.
      
      The functions:
      
      	- get_btrfs_subvol_path()
      	- btrfs_list_get_path_rootid()
      	- is_btrfs_fs()
      	- btrfs_detect()
      	- btrfs_mount()
      	- btrfs_umount()
      	- btrfs_subvolume_create()
      	- btrfs_same_fs()
      	- btrfs_snapshot()
      	- btrfs_snapshot_wrapper()
      	- btrfs_clonepaths()
      	- btrfs_do_destroy_subvol()
      	- get_btrfs_tree_idx()
      	- my_btrfs_tree *create_my_btrfs_tree()
      	- update_tree_node()
      	- add_btrfs_tree_node()
      	- free_btrfs_tree()
      	- do_remove_btrfs_children()
      	- btrfs_recursive_destroy()
      	- btrfs_try_remove_subvol()
      	- btrfs_destroy()
      	- btrfs_create()
      
      and the structs:
      
      	- struct mytree_node
      	- struct my_btrfs_tree
      
      move from bdev.{c,h} to lxcbtrfs.{c,h}.
      
      Rename the header file
      
      	- lxc-btrfs.h --> lxcbtrfs.h
      
      Adapt Makefile.am to include lxcbtrfs.{c,h} and remove lxc-btrfs.h.
      Signed-off-by: 's avatarChristian Brauner <christian.brauner@mailbox.org>
    • Add <linux/types.h> header to lxcbtrfs.h · fc58bf2c
      Christian Brauner authored
      Using
      
      	#include <sys/types.h>
      
      is not sufficient to guarantee that __le64 and other types are defined.
      Signed-off-by: 's avatarChristian Brauner <christian.brauner@mailbox.org>
    • Simplify overlay.{c,h} · e0d0f93b
      Christian Brauner authored
      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: 's avatarChristian Brauner <christian.brauner@mailbox.org>