btrfs-progs: Close file descriptor on exit
authorZhi Yong Wu <wuzhy@linux.vnet.ibm.com>
Tue, 25 Sep 2012 02:02:15 +0000 (20:02 -0600)
committerroot <root@localhost.localdomain>
Thu, 4 Oct 2012 20:26:34 +0000 (16:26 -0400)
  Need to close fd on exit.

Signed-off-by: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
cmds-filesystem.c

index b1457de..e62c4fd 100644 (file)
@@ -77,18 +77,23 @@ static int cmd_df(int argc, char **argv)
        if (ret) {
                fprintf(stderr, "ERROR: couldn't get space info on '%s' - %s\n",
                        path, strerror(e));
+               close(fd);
                free(sargs);
                return ret;
        }
-       if (!sargs->total_spaces)
+       if (!sargs->total_spaces) {
+               close(fd);
                return 0;
+       }
 
        count = sargs->total_spaces;
 
        sargs = realloc(sargs, sizeof(struct btrfs_ioctl_space_args) +
                        (count * sizeof(struct btrfs_ioctl_space_info)));
-       if (!sargs)
+       if (!sargs) {
+               close(fd);
                return -ENOMEM;
+       }
 
        sargs->space_slots = count;
        sargs->total_spaces = 0;
@@ -148,6 +153,7 @@ static int cmd_df(int argc, char **argv)
                printf("%s: total=%s, used=%s\n", description, total_bytes,
                       used_bytes);
        }
+       close(fd);
        free(sargs);
 
        return 0;