diff --git a/src/solid/devices/backends/udisks2/udisksmanager.cpp b/src/solid/devices/backends/udisks2/udisksmanager.cpp --- a/src/solid/devices/backends/udisks2/udisksmanager.cpp +++ b/src/solid/devices/backends/udisks2/udisksmanager.cpp @@ -212,11 +212,14 @@ qDebug() << udi << "lost interfaces:" << interfaces; - updateBackend(udi); + if (udi.isEmpty()) { + return; + } - Device device(udi); + updateBackend(udi); - if (!udi.isEmpty() && (interfaces.isEmpty() || device.interfaces().isEmpty())) { + if (interfaces.contains(UD2_DBUS_INTERFACE_FILESYSTEM) + || interfaces.contains(UD2_DBUS_INTERFACE_LOOP)) { emit deviceRemoved(udi); m_deviceCache.removeAll(udi); DeviceBackend::destroyBackend(udi);