summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2023-12-19 19:43:30 -0500
committerKent Overstreet <kent.overstreet@linux.dev>2023-12-19 19:43:30 -0500
commit411eb2575effb82343b99889014d5b2082291318 (patch)
treed555bbbd656d708e3146a445db94a0913f69a174
parent2b28e8f7d260effdd036bd9e5a3c024070f9882e (diff)
cmd_migrate: fix memory leaks
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r--cmd_migrate.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/cmd_migrate.c b/cmd_migrate.c
index 77bcedcd..f2a6cc7d 100644
--- a/cmd_migrate.c
+++ b/cmd_migrate.c
@@ -375,6 +375,7 @@ static void copy_file(struct bch_fs *c, struct bch_inode_unpacked *dst,
fsync(src_fd);
break;
}
+ fiemap_iter_exit(&iter);
fiemap_for_each(src_fd, iter, e) {
if ((e.fe_logical & (block_bytes(c) - 1)) ||
@@ -408,6 +409,7 @@ static void copy_file(struct bch_fs *c, struct bch_inode_unpacked *dst,
range_add(extents, e.fe_physical, e.fe_length);
link_data(c, dst, e.fe_logical, e.fe_physical, e.fe_length);
}
+ fiemap_iter_exit(&iter);
}
struct copy_fs_state {
@@ -505,6 +507,7 @@ next:
if (errno)
die("readdir error: %m");
+ closedir(dir);
}
static ranges reserve_new_fs_space(const char *file_path, unsigned block_size,
@@ -547,6 +550,7 @@ static ranges reserve_new_fs_space(const char *file_path, unsigned block_size,
range_add(&extents, e.fe_physical, e.fe_length);
}
+ fiemap_iter_exit(&iter);
close(fd);
ranges_sort_merge(&extents);