btrfs-progs: don't leak fds in logical resolve

Signed-off-by: Zach Brown <zab@redhat.com>
This commit is contained in:
Zach Brown 2013-01-24 10:53:49 -08:00
parent df13b84670
commit a70837ab1e
1 changed files with 8 additions and 2 deletions

View File

@ -212,8 +212,10 @@ static int cmd_logical_resolve(int argc, char **argv)
if (getpath) {
name = btrfs_list_path_for_root(fd, root);
if (IS_ERR(name))
return PTR_ERR(name);
if (IS_ERR(name)) {
ret = PTR_ERR(name);
goto out;
}
if (!name) {
path_ptr[-1] = '\0';
path_fd = fd;
@ -231,6 +233,8 @@ static int cmd_logical_resolve(int argc, char **argv)
}
}
__ino_to_path_fd(inum, path_fd, verbose, full_path);
if (path_fd != fd)
close(path_fd);
} else {
printf("inode %llu offset %llu root %llu\n", inum,
offset, root);
@ -238,6 +242,8 @@ static int cmd_logical_resolve(int argc, char **argv)
}
out:
if (fd >= 0)
close(fd);
free(inodes);
return ret;
}