diff options
author | David Sterba <dsterba@suse.com> | 2016-11-03 00:37:51 +0100 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2016-11-09 13:47:31 +0100 |
commit | 14eba913303fa5ea463a54ffadf9ddcd0b081832 (patch) | |
tree | 0fa9e03a04dcddd81531d6f2bac4e5bc26d92bee | |
parent | 33f07b0d037ec0f83166cc42c264224ddbca0f18 (diff) |
btrfs-progs: image: use on-stack path buffer in create_metadump
We don't need to conserve stack space too much unlike kernel, also
remove one error condition.
Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r-- | btrfs-image.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/btrfs-image.c b/btrfs-image.c index 0b915c6d..81baeea1 100644 --- a/btrfs-image.c +++ b/btrfs-image.c @@ -1328,7 +1328,7 @@ static int create_metadump(const char *input, FILE *out, int num_threads, int compress_level, int sanitize, int walk_trees) { struct btrfs_root *root; - struct btrfs_path *path = NULL; + struct btrfs_path path; struct metadump_struct metadump; int ret; int err = 0; @@ -1355,12 +1355,7 @@ static int create_metadump(const char *input, FILE *out, int num_threads, goto out; } - path = btrfs_alloc_path(); - if (!path) { - error("not enough memory to allocate path"); - err = -ENOMEM; - goto out; - } + btrfs_init_path(&path); if (walk_trees) { ret = copy_tree_blocks(root, root->fs_info->chunk_root->node, @@ -1377,20 +1372,20 @@ static int create_metadump(const char *input, FILE *out, int num_threads, goto out; } } else { - ret = copy_from_extent_tree(&metadump, path); + ret = copy_from_extent_tree(&metadump, &path); if (ret) { err = ret; goto out; } } - ret = copy_log_trees(root, &metadump, path); + ret = copy_log_trees(root, &metadump, &path); if (ret) { err = ret; goto out; } - ret = copy_space_cache(root, &metadump, path); + ret = copy_space_cache(root, &metadump, &path); out: ret = flush_pending(&metadump, 1); if (ret) { @@ -1401,7 +1396,7 @@ out: metadump_destroy(&metadump, num_threads); - btrfs_free_path(path); + btrfs_release_path(&path); ret = close_ctree(root); return err ? err : ret; } |