diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2016-01-17 19:26:46 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2016-01-17 19:42:49 +0100 |
commit | bc714ea7ed34207482be2faf1d3e2babc0fcbae7 (patch) | |
tree | 64bfc01f1f00e75eb8b9817c78bcb530dd0240d2 | |
parent | 79fa5643272cd99e3ab3c12acbc5ff548466d32f (diff) | |
download | tracker-bc714ea7ed34207482be2faf1d3e2babc0fcbae7.tar.gz |
libtracker-common: Report total free space if running as root
For the people that want to run Tracker as a system-wide service.
There's no "unprivileged user" limitations to obey here, so just
report st.f_bfree instead of st.f_bavail.
-rw-r--r-- | src/libtracker-common/tracker-file-utils.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libtracker-common/tracker-file-utils.c b/src/libtracker-common/tracker-file-utils.c index 123d34793..0cf6cd1e6 100644 --- a/src/libtracker-common/tracker-file-utils.c +++ b/src/libtracker-common/tracker-file-utils.c @@ -290,9 +290,11 @@ guint64 tracker_file_system_get_remaining_space (const gchar *path) { struct __statvfs st; + gsize available; if (statvfs_helper (path, &st)) { - return st.f_bsize * st.f_bavail; + available = (geteuid () == 0) ? st.f_bfree : st.f_bavail; + return st.f_bsize * available; } else { return 0; } @@ -302,9 +304,11 @@ gdouble tracker_file_system_get_remaining_space_percentage (const gchar *path) { struct __statvfs st; + gsize available; if (statvfs_helper (path, &st)) { - return (st.f_bavail * 100.0 / st.f_blocks); + available = (geteuid () == 0) ? st.f_bfree : st.f_bavail; + return (available * 100.0 / st.f_blocks); } else { return 0.0; } |