diff options
Diffstat (limited to 'cmds-inspect.c')
-rw-r--r-- | cmds-inspect.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/cmds-inspect.c b/cmds-inspect.c index 4347c1ac..e02b53a3 100644 --- a/cmds-inspect.c +++ b/cmds-inspect.c @@ -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; } |