Revert "btrfs: non-functional changes"

This reverts commit 8e295bc1. Signed-off-by: 's avatarChristian Brauner <christian.brauner@ubuntu.com>
parent 24e0a4f0
...@@ -322,15 +322,16 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname, ...@@ -322,15 +322,16 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname,
/* if the container name doesn't show up in the rootfs path, then /* if the container name doesn't show up in the rootfs path, then
* we don't know how to come up with a new name * we don't know how to come up with a new name
*/ */
if (!strstr(src, oldname)) { if (strstr(src, oldname) == NULL) {
ERROR("original rootfs path %s doesn't include container name %s", ERROR(
src, oldname); "original rootfs path %s doesn't include container name %s",
src, oldname);
return NULL; return NULL;
} }
orig = bdev_init(c0->lxc_conf, src, NULL, NULL); orig = bdev_init(c0->lxc_conf, src, NULL, NULL);
if (!orig) { if (!orig) {
ERROR("Failed to detect storage driver for \"%s\"", src); ERROR("failed to detect blockdev type for %s", src);
return NULL; return NULL;
} }
...@@ -342,14 +343,14 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname, ...@@ -342,14 +343,14 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname,
len = strlen(oldpath) + strlen(oldname) + strlen("/rootfs") + 2; len = strlen(oldpath) + strlen(oldname) + strlen("/rootfs") + 2;
orig->dest = malloc(len); orig->dest = malloc(len);
if (!orig->dest) { if (!orig->dest) {
ERROR("Failed to allocate memory"); ERROR("out of memory");
bdev_put(orig); bdev_put(orig);
return NULL; return NULL;
} }
ret = snprintf(orig->dest, len, "%s/%s/rootfs", oldpath, oldname); ret = snprintf(orig->dest, len, "%s/%s/rootfs", oldpath, oldname);
if (ret < 0 || (size_t)ret >= len) { if (ret < 0 || (size_t)ret >= len) {
ERROR("Failed to create string"); ERROR("rootfs path too long");
bdev_put(orig); bdev_put(orig);
return NULL; return NULL;
} }
...@@ -357,13 +358,14 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname, ...@@ -357,13 +358,14 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname,
if (ret < 0 && errno == ENOENT) if (ret < 0 && errno == ENOENT)
if (mkdir_p(orig->dest, 0755) < 0) if (mkdir_p(orig->dest, 0755) < 0)
WARN("Failed to create directoy \"%s\"", WARN("Error creating '%s', continuing.",
orig->dest); orig->dest);
} }
/* Special case for snapshot. If the caller requested maybe_snapshot and /*
* keepbdevtype and the backing store is directory, then proceed with a * special case for snapshot - if caller requested maybe_snapshot and
* a copy clone rather than returning error. * keepbdevtype and backing store is directory, then proceed with a copy
* clone rather than returning error
*/ */
if (maybe_snap && keepbdevtype && !bdevtype && !orig->ops->can_snapshot) if (maybe_snap && keepbdevtype && !bdevtype && !orig->ops->can_snapshot)
snap = false; snap = false;
...@@ -408,7 +410,7 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname, ...@@ -408,7 +410,7 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname,
if (new->ops->clone_paths(orig, new, oldname, cname, oldpath, lxcpath, if (new->ops->clone_paths(orig, new, oldname, cname, oldpath, lxcpath,
snap, newsize, c0->lxc_conf) < 0) { snap, newsize, c0->lxc_conf) < 0) {
ERROR("Failed getting pathnames for clone of \"%s\"", src); ERROR("failed getting pathnames for cloned storage: %s", src);
goto err; goto err;
} }
...@@ -422,9 +424,10 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname, ...@@ -422,9 +424,10 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname,
if (snap) if (snap)
return new; return new;
/* https://github.com/lxc/lxc/issues/131 /*
* https://github.com/lxc/lxc/issues/131
* Use btrfs snapshot feature instead of rsync to restore if both orig * Use btrfs snapshot feature instead of rsync to restore if both orig
* and new are btrfs. * and new are btrfs
*/ */
if (bdevtype && strcmp(orig->type, "btrfs") == 0 && if (bdevtype && strcmp(orig->type, "btrfs") == 0 &&
strcmp(new->type, "btrfs") == 0 && strcmp(new->type, "btrfs") == 0 &&
...@@ -432,12 +435,12 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname, ...@@ -432,12 +435,12 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname,
struct rsync_data_char arg; struct rsync_data_char arg;
if (btrfs_destroy(new) < 0) { if (btrfs_destroy(new) < 0) {
ERROR("Failed to destroy \"%s\" btrfs subvolume", new->dest); ERROR("Error destroying %s subvolume", new->dest);
goto err; goto err;
} }
if (mkdir_p(new->dest, 0755) < 0) { if (mkdir_p(new->dest, 0755) < 0) {
ERROR("Failed to create directory \"%s\"", new->dest); ERROR("Error creating %s directory", new->dest);
goto err; goto err;
} }
...@@ -481,7 +484,7 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname, ...@@ -481,7 +484,7 @@ struct bdev *bdev_copy(struct lxc_container *c0, const char *cname,
else else
ret = rsync_rootfs(&data); ret = rsync_rootfs(&data);
if (ret < 0) if (ret < 0)
ERROR("Failed to rsync from"); ERROR("Failed to rsync");
exit(ret == 0 ? 0 : 1); exit(ret == 0 ? 0 : 1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment