summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tdecore/tdehw/tdehardwaredevices.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/tdecore/tdehw/tdehardwaredevices.cpp b/tdecore/tdehw/tdehardwaredevices.cpp
index 26dc010f5..4aca70439 100644
--- a/tdecore/tdehw/tdehardwaredevices.cpp
+++ b/tdecore/tdehw/tdehardwaredevices.cpp
@@ -2656,6 +2656,16 @@ void TDEHardwareDevices::updateExistingDeviceInformation(TDEGenericDevice* exist
if (hotpluggable) {
diskstatus = diskstatus | TDEDiskDeviceStatus::Hotpluggable;
}
+ // Force removable flag for flash disks
+ // udev reports disks as non-removable for card readers on PCI controllers
+ if (((disktype & TDEDiskDeviceType::CompactFlash)
+ || (disktype & TDEDiskDeviceType::MemoryStick)
+ || (disktype & TDEDiskDeviceType::SmartMedia)
+ || (disktype & TDEDiskDeviceType::SDMMC))
+ && !(diskstatus & TDEDiskDeviceStatus::Removable)
+ && !(diskstatus & TDEDiskDeviceStatus::Hotpluggable)) {
+ diskstatus = diskstatus | TDEDiskDeviceStatus::Removable;
+ }
if ((filesystemtype.upper() != "CRYPTO_LUKS") && (filesystemtype.upper() != "CRYPTO") && (filesystemtype.upper() != "SWAP") && (!filesystemtype.isNull())) {
diskstatus = diskstatus | TDEDiskDeviceStatus::ContainsFilesystem;