]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
storage: add create_{clone,snapshot}()
authorChristian Brauner <christian.brauner@ubuntu.com>
Sun, 16 Jul 2017 22:01:46 +0000 (00:01 +0200)
committerChristian Brauner <christian.brauner@ubuntu.com>
Mon, 31 Jul 2017 21:34:15 +0000 (23:34 +0200)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/bdev/bdev.c
src/lxc/bdev/bdev.h

index d319572232c3ee20a9bcee960bcfad11db3c2c83..5ae3ba65764147206936a702ae57d4cc009cc255 100644 (file)
@@ -82,6 +82,8 @@ static const struct bdev_ops aufs_ops = {
     .clone_paths = &aufs_clonepaths,
     .destroy = &aufs_destroy,
     .create = &aufs_create,
+    .create_clone = NULL,
+    .create_snapshot = NULL,
     .can_snapshot = true,
     .can_backup = true,
 };
@@ -94,6 +96,8 @@ static const struct bdev_ops btrfs_ops = {
     .clone_paths = &btrfs_clonepaths,
     .destroy = &btrfs_destroy,
     .create = &btrfs_create,
+    .create_clone = NULL,
+    .create_snapshot = NULL,
     .can_snapshot = true,
     .can_backup = true,
 };
@@ -106,6 +110,8 @@ static const struct bdev_ops dir_ops = {
     .clone_paths = &dir_clonepaths,
     .destroy = &dir_destroy,
     .create = &dir_create,
+    .create_clone = NULL,
+    .create_snapshot = NULL,
     .can_snapshot = false,
     .can_backup = true,
 };
@@ -118,6 +124,8 @@ static const struct bdev_ops loop_ops = {
     .clone_paths = &loop_clonepaths,
     .destroy = &loop_destroy,
     .create = &loop_create,
+    .create_clone = NULL,
+    .create_snapshot = NULL,
     .can_snapshot = false,
     .can_backup = true,
 };
@@ -130,6 +138,8 @@ static const struct bdev_ops lvm_ops = {
     .clone_paths = &lvm_clonepaths,
     .destroy = &lvm_destroy,
     .create = &lvm_create,
+    .create_clone = NULL,
+    .create_snapshot = NULL,
     .can_snapshot = true,
     .can_backup = false,
 };
@@ -142,6 +152,8 @@ const struct bdev_ops nbd_ops = {
     .clone_paths = &nbd_clonepaths,
     .destroy = &nbd_destroy,
     .create = &nbd_create,
+    .create_clone = NULL,
+    .create_snapshot = NULL,
     .can_snapshot = true,
     .can_backup = false,
 };
@@ -154,6 +166,8 @@ static const struct bdev_ops ovl_ops = {
     .clone_paths = &ovl_clonepaths,
     .destroy = &ovl_destroy,
     .create = &ovl_create,
+    .create_clone = NULL,
+    .create_snapshot = NULL,
     .can_snapshot = true,
     .can_backup = true,
 };
@@ -166,6 +180,8 @@ static const struct bdev_ops rbd_ops = {
     .clone_paths = &rbd_clonepaths,
     .destroy = &rbd_destroy,
     .create = &rbd_create,
+    .create_clone = NULL,
+    .create_snapshot = NULL,
     .can_snapshot = false,
     .can_backup = false,
 };
@@ -178,6 +194,8 @@ static const struct bdev_ops zfs_ops = {
     .clone_paths = &zfs_clonepaths,
     .destroy = &zfs_destroy,
     .create = &zfs_create,
+    .create_clone = NULL,
+    .create_snapshot = NULL,
     .can_snapshot = true,
     .can_backup = true,
 };
index 22133173aefeb8a0a80e135d4267c9bc878abaa9..5a14e33763136096ba818f7feda1d4711bd65d61 100644 (file)
@@ -73,6 +73,10 @@ struct bdev_ops {
                           const char *oldname, const char *cname,
                           const char *oldpath, const char *lxcpath, int snap,
                           uint64_t newsize, struct lxc_conf *conf);
+       bool (*create_clone)(struct lxc_conf *conf, struct bdev *orig,
+                            struct bdev *new, uint64_t newsize);
+       bool (*create_snapshot)(struct lxc_conf *conf, struct bdev *orig,
+                               struct bdev *new);
        bool can_snapshot;
        bool can_backup;
 };