summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2016-01-23 04:25:40 +0100
committerSlávek Banko <slavek.banko@axis.cz>2016-01-23 04:25:53 +0100
commitad6b5add68f544725f52317cc25af7cc8e9e45f1 (patch)
tree6a2dafa070bd7305395b2b04ae7d21f7858ecedc
parent10f97f0a4244cbeda4e72820e6dba0e6f15f8ae0 (diff)
downloadtdelibs-ad6b5add68f544725f52317cc25af7cc8e9e45f1.tar.gz
tdelibs-ad6b5add68f544725f52317cc25af7cc8e9e45f1.zip
Fix disk type clasification in tdehwlib
This resolves Bug 2473 Signed-off-by: Slávek Banko <slavek.banko@axis.cz> (cherry picked from commit 68102d50e99fe35442f78be21cf8b720481e7e0b)
-rw-r--r--tdecore/tdehw/tdehardwaredevices.cpp18
1 files changed, 6 insertions, 12 deletions
diff --git a/tdecore/tdehw/tdehardwaredevices.cpp b/tdecore/tdehw/tdehardwaredevices.cpp
index 3fc8e42b0..5c6ad9e27 100644
--- a/tdecore/tdehw/tdehardwaredevices.cpp
+++ b/tdecore/tdehw/tdehardwaredevices.cpp
@@ -1067,20 +1067,8 @@ TDEDiskDeviceType::TDEDiskDeviceType classifyDiskType(udev_device* dev, const TQ
if (disktypestring.upper() == "DISK") {
disktype = disktype | TDEDiskDeviceType::HDD;
}
- if (disktypestring.isNull()) {
- // Fallback
- // If we can't recognize the disk type then set it as a simple HDD volume
- disktype = disktype | TDEDiskDeviceType::HDD;
- }
-
- // Certain combinations of media flags should never be set at the same time as they don't make sense
- // This block is needed as udev is more than happy to provide inconsistent data to us
- if ((disktype & TDEDiskDeviceType::Zip) || (disktype & TDEDiskDeviceType::Floppy) || (disktype & TDEDiskDeviceType::Jaz) || (disktype & TDEDiskDeviceType::Tape)) {
- disktype = disktype & ~TDEDiskDeviceType::HDD;
- }
if (disktypestring.upper() == "CD") {
- disktype = disktype & ~TDEDiskDeviceType::HDD;
disktype = disktype | TDEDiskDeviceType::Optical;
if (TQString(udev_device_get_property_value(dev, "ID_CDROM_MEDIA")) == "1") {
@@ -1250,6 +1238,12 @@ TDEDiskDeviceType::TDEDiskDeviceType classifyDiskType(udev_device* dev, const TQ
disktype = disktype | TDEDiskDeviceType::Loop;
}
+ if (disktype == TDEDiskDeviceType::Null) {
+ // Fallback
+ // If we can't recognize the disk type then set it as a simple HDD volume
+ disktype = disktype | TDEDiskDeviceType::HDD;
+ }
+
if (filesystemtype.upper() == "CRYPTO_LUKS") {
disktype = disktype | TDEDiskDeviceType::LUKS;
}