From 3c58349561a69314ca5fa56bd173b1498ff6ff6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= Date: Tue, 15 Nov 2016 17:00:59 +0000 Subject: [PATCH] Make sure KDiskFreeSpaceInfo is never used for swap. --- src/core/lvmdevice.cpp | 8 ++++---- src/plugins/libparted/libpartedbackend.cpp | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/core/lvmdevice.cpp b/src/core/lvmdevice.cpp index 2920d04..377594d 100644 --- a/src/core/lvmdevice.cpp +++ b/src/core/lvmdevice.cpp @@ -139,11 +139,11 @@ Partition* LvmDevice::scanPartition(const QString& lvPath, PartitionTable* pTabl mountPoint = FileSystem::detectMountPoint(fs, lvPath); mounted = FileSystem::detectMountStatus(fs, lvPath); - if (mountPoint != QString()) { + // KDiskFreeSpaceInfo does not work with swap + if (mountPoint != QString() && fs->type() != FileSystem::LinuxSwap) { const KDiskFreeSpaceInfo freeSpaceInfo = KDiskFreeSpaceInfo::freeSpaceInfo(mountPoint); - if (logicalSize() > 0 && fs->type() != FileSystem::Luks) - if (mounted && freeSpaceInfo.isValid() && mountPoint != QString()) - fs->setSectorsUsed(freeSpaceInfo.used() / logicalSize()); + if (logicalSize() > 0 && fs->type() != FileSystem::Luks && mounted && freeSpaceInfo.isValid()) + fs->setSectorsUsed(freeSpaceInfo.used() / logicalSize()); } else if (fs->supportGetUsed() == FileSystem::cmdSupportFileSystem) fs->setSectorsUsed(qCeil(fs->readUsedCapacity(lvPath) / static_cast(logicalSize()))); diff --git a/src/plugins/libparted/libpartedbackend.cpp b/src/plugins/libparted/libpartedbackend.cpp index aa8d22e..c7b07a9 100644 --- a/src/plugins/libparted/libpartedbackend.cpp +++ b/src/plugins/libparted/libpartedbackend.cpp @@ -197,7 +197,8 @@ static void readSectorsUsed(PedDisk* pedDisk, const Device& d, Partition& p, con if (mountPoint != QString()) { const KDiskFreeSpaceInfo freeSpaceInfo = KDiskFreeSpaceInfo::freeSpaceInfo(mountPoint); - if (p.isMounted() && freeSpaceInfo.isValid() && mountPoint != QString()) + // KDiskFreeSpaceInfo does not work with swap + if (p.isMounted() && freeSpaceInfo.isValid() && mountPoint != QString() && p.fileSystem().type() != FileSystem::LinuxSwap) p.fileSystem().setSectorsUsed(freeSpaceInfo.used() / d.logicalSize()); else if (p.fileSystem().supportGetUsed() == FileSystem::cmdSupportFileSystem) p.fileSystem().setSectorsUsed(p.fileSystem().readUsedCapacity(p.deviceNode()) / d.logicalSize());