fixed free space / size display on large filesystems
[fapman] / mainwindow.cpp
index a2f6c5c..71d9337 100644 (file)
@@ -675,10 +675,10 @@ void MainWindow::showFreeSpace()
        struct statfs opt_stat;
        statfs("/",&root_stat);
        statfs("/opt",&opt_stat);
-       quint64 free_root = root_stat.f_bavail * root_stat.f_bsize / 1024;
-       quint64 free_opt = opt_stat.f_bavail * opt_stat.f_bsize / 1024;
-       quint64 total_root = root_stat.f_blocks * root_stat.f_bsize / 1024;
-       quint64 total_opt = opt_stat.f_blocks * opt_stat.f_bsize / 1024;
+       quint64 free_root = static_cast<quint64>(root_stat.f_bavail) * static_cast<quint64>(root_stat.f_bsize) / 1024;
+       quint64 free_opt = static_cast<quint64>(opt_stat.f_bavail) * static_cast<quint64>(opt_stat.f_bsize) / 1024;
+       quint64 total_root = static_cast<quint64>(root_stat.f_blocks) * static_cast<quint64>(root_stat.f_bsize) / 1024;
+       quint64 total_opt = static_cast<quint64>(opt_stat.f_blocks) * static_cast<quint64>(opt_stat.f_bsize) / 1024;
        qDebug() << "rootfs" << free_root << "/" << total_root << "kB free";
        qDebug() << "opt fs" << free_opt << "/" << total_opt << "kB free";