summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/smbd/dfree.c29
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) {