btrfs-progs: send: cleanup, rename send context variables

Signed-off-by: David Sterba <dsterba@suse.com>
master
David Sterba 2016-11-02 14:14:56 +01:00
parent a9f407b9a6
commit 62fb1a5c14
1 changed files with 29 additions and 28 deletions

View File

@ -64,11 +64,11 @@ struct btrfs_send {
struct subvol_uuid_search sus; struct subvol_uuid_search sus;
}; };
static int get_root_id(struct btrfs_send *s, const char *path, u64 *root_id) static int get_root_id(struct btrfs_send *sctx, const char *path, u64 *root_id)
{ {
struct subvol_info *si; struct subvol_info *si;
si = subvol_uuid_search(&s->sus, 0, NULL, 0, path, si = subvol_uuid_search(&sctx->sus, 0, NULL, 0, path,
subvol_search_by_path); subvol_search_by_path);
if (!si) if (!si)
return -ENOENT; return -ENOENT;
@ -78,24 +78,24 @@ static int get_root_id(struct btrfs_send *s, const char *path, u64 *root_id)
return 0; return 0;
} }
static struct subvol_info *get_parent(struct btrfs_send *s, u64 root_id) static struct subvol_info *get_parent(struct btrfs_send *sctx, u64 root_id)
{ {
struct subvol_info *si_tmp; struct subvol_info *si_tmp;
struct subvol_info *si; struct subvol_info *si;
si_tmp = subvol_uuid_search(&s->sus, root_id, NULL, 0, NULL, si_tmp = subvol_uuid_search(&sctx->sus, root_id, NULL, 0, NULL,
subvol_search_by_root_id); subvol_search_by_root_id);
if (!si_tmp) if (!si_tmp)
return NULL; return NULL;
si = subvol_uuid_search(&s->sus, 0, si_tmp->parent_uuid, 0, NULL, si = subvol_uuid_search(&sctx->sus, 0, si_tmp->parent_uuid, 0, NULL,
subvol_search_by_uuid); subvol_search_by_uuid);
free(si_tmp->path); free(si_tmp->path);
free(si_tmp); free(si_tmp);
return si; return si;
} }
static int find_good_parent(struct btrfs_send *s, u64 root_id, u64 *found) static int find_good_parent(struct btrfs_send *sctx, u64 root_id, u64 *found)
{ {
int ret; int ret;
struct subvol_info *parent = NULL; struct subvol_info *parent = NULL;
@ -105,22 +105,22 @@ static int find_good_parent(struct btrfs_send *s, u64 root_id, u64 *found)
u64 best_diff = (u64)-1; u64 best_diff = (u64)-1;
int i; int i;
parent = get_parent(s, root_id); parent = get_parent(sctx, root_id);
if (!parent) { if (!parent) {
ret = -ENOENT; ret = -ENOENT;
goto out; goto out;
} }
for (i = 0; i < s->clone_sources_count; i++) { for (i = 0; i < sctx->clone_sources_count; i++) {
if (s->clone_sources[i] == parent->root_id) { if (sctx->clone_sources[i] == parent->root_id) {
best_parent = parent; best_parent = parent;
parent = NULL; parent = NULL;
goto out_found; goto out_found;
} }
} }
for (i = 0; i < s->clone_sources_count; i++) { for (i = 0; i < sctx->clone_sources_count; i++) {
parent2 = get_parent(s, s->clone_sources[i]); parent2 = get_parent(sctx, sctx->clone_sources[i]);
if (!parent2) if (!parent2)
continue; continue;
if (parent2->root_id != parent->root_id) { if (parent2->root_id != parent->root_id) {
@ -132,8 +132,9 @@ static int find_good_parent(struct btrfs_send *s, u64 root_id, u64 *found)
free(parent2->path); free(parent2->path);
free(parent2); free(parent2);
parent2 = subvol_uuid_search(&s->sus, s->clone_sources[i], NULL, parent2 = subvol_uuid_search(&sctx->sus,
0, NULL, subvol_search_by_root_id); sctx->clone_sources[i], NULL, 0, NULL,
subvol_search_by_root_id);
if (!parent2) { if (!parent2) {
ret = -ENOENT; ret = -ENOENT;
@ -178,19 +179,19 @@ out:
return ret; return ret;
} }
static int add_clone_source(struct btrfs_send *s, u64 root_id) static int add_clone_source(struct btrfs_send *sctx, u64 root_id)
{ {
void *tmp; void *tmp;
tmp = s->clone_sources; tmp = sctx->clone_sources;
s->clone_sources = realloc(s->clone_sources, sctx->clone_sources = realloc(sctx->clone_sources,
sizeof(*s->clone_sources) * (s->clone_sources_count + 1)); sizeof(*sctx->clone_sources) * (sctx->clone_sources_count + 1));
if (!s->clone_sources) { if (!sctx->clone_sources) {
free(tmp); free(tmp);
return -ENOMEM; return -ENOMEM;
} }
s->clone_sources[s->clone_sources_count++] = root_id; sctx->clone_sources[sctx->clone_sources_count++] = root_id;
return 0; return 0;
} }
@ -343,14 +344,14 @@ out:
return ret; return ret;
} }
static int init_root_path(struct btrfs_send *s, const char *subvol) static int init_root_path(struct btrfs_send *sctx, const char *subvol)
{ {
int ret = 0; int ret = 0;
if (s->root_path) if (sctx->root_path)
goto out; goto out;
ret = find_mount_root(subvol, &s->root_path); ret = find_mount_root(subvol, &sctx->root_path);
if (ret < 0) { if (ret < 0) {
error("failed to determine mount point for %s: %s", error("failed to determine mount point for %s: %s",
subvol, strerror(-ret)); subvol, strerror(-ret));
@ -363,14 +364,14 @@ static int init_root_path(struct btrfs_send *s, const char *subvol)
goto out; goto out;
} }
s->mnt_fd = open(s->root_path, O_RDONLY | O_NOATIME); sctx->mnt_fd = open(sctx->root_path, O_RDONLY | O_NOATIME);
if (s->mnt_fd < 0) { if (sctx->mnt_fd < 0) {
ret = -errno; ret = -errno;
error("cannot open '%s': %s", s->root_path, strerror(-ret)); error("cannot open '%s': %s", sctx->root_path, strerror(-ret));
goto out; goto out;
} }
ret = subvol_uuid_search_init(s->mnt_fd, &s->sus); ret = subvol_uuid_search_init(sctx->mnt_fd, &sctx->sus);
if (ret < 0) { if (ret < 0) {
error("failed to initialize subvol search: %s", error("failed to initialize subvol search: %s",
strerror(-ret)); strerror(-ret));
@ -382,13 +383,13 @@ out:
} }
static int is_subvol_ro(struct btrfs_send *s, const char *subvol) static int is_subvol_ro(struct btrfs_send *sctx, const char *subvol)
{ {
int ret; int ret;
u64 flags; u64 flags;
int fd = -1; int fd = -1;
fd = openat(s->mnt_fd, subvol, O_RDONLY | O_NOATIME); fd = openat(sctx->mnt_fd, subvol, O_RDONLY | O_NOATIME);
if (fd < 0) { if (fd < 0) {
ret = -errno; ret = -errno;
error("cannot open %s: %s", subvol, strerror(-ret)); error("cannot open %s: %s", subvol, strerror(-ret));