diff options
Diffstat (limited to 'source3/smbd/dfree.c')
-rw-r--r-- | source3/smbd/dfree.c | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/source3/smbd/dfree.c b/source3/smbd/dfree.c index e6a0af21859..1e5aba63d03 100644 --- a/source3/smbd/dfree.c +++ b/source3/smbd/dfree.c @@ -98,7 +98,7 @@ uint64_t sys_disk_free(connection_struct *conn, const char *path, bool small_que DEBUG (3, ("disk_free: Running command '%s'\n", syscmd)); lines = file_lines_pload(syscmd, NULL); - if (lines) { + if (lines != NULL) { char *line = lines[0]; DEBUG (3, ("Read input from dfree, \"%s\"\n", line)); @@ -122,22 +122,18 @@ uint64_t sys_disk_free(connection_struct *conn, const char *path, bool small_que *dsize = 2048; if (!*dfree) *dfree = 1024; - } else { - DEBUG (0, ("disk_free: file_lines_load() failed for " - "command '%s'. Error was : %s\n", - syscmd, strerror(errno) )); - if (sys_fsusage(path, dfree, dsize) != 0) { - DEBUG (0, ("disk_free: sys_fsusage() failed. Error was : %s\n", - strerror(errno) )); - return (uint64_t)-1; - } - } - } else { - if (sys_fsusage(path, dfree, dsize) != 0) { - DEBUG (0, ("disk_free: sys_fsusage() failed. Error was : %s\n", - strerror(errno) )); - return (uint64_t)-1; + + goto dfree_done; } + DEBUG (0, ("disk_free: file_lines_load() failed for " + "command '%s'. Error was : %s\n", + syscmd, strerror(errno) )); + } + + if (sys_fsusage(path, dfree, dsize) != 0) { + DEBUG (0, ("disk_free: sys_fsusage() failed. Error was : %s\n", + strerror(errno) )); + return (uint64_t)-1; } if (disk_quotas(path, &bsize_q, &dfree_q, &dsize_q)) { @@ -161,6 +157,7 @@ uint64_t sys_disk_free(connection_struct *conn, const char *path, bool small_que *dfree = MAX(1,*dfree); } +dfree_done: disk_norm(small_query,bsize,dfree,dsize); if ((*bsize) < 1024) { |