summaryrefslogtreecommitdiffstats
path: root/tdecore/tdehw
diff options
context:
space:
mode:
Diffstat (limited to 'tdecore/tdehw')
-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 f121bec3c..8ec1a5286 100644
--- a/tdecore/tdehw/tdehardwaredevices.cpp
+++ b/tdecore/tdehw/tdehardwaredevices.cpp
@@ -2710,6 +2710,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;