diff -up kdelibs-4.9.1/solid/solid/backends/udisks/udisksstorageaccess.cpp.solid-detach-external-hdd kdelibs-4.9.1/solid/solid/backends/udisks/udisksstorageaccess.cpp --- kdelibs-4.9.1/solid/solid/backends/udisks/udisksstorageaccess.cpp.solid-detach-external-hdd 2012-08-28 15:37:29.000000000 +0200 +++ kdelibs-4.9.1/solid/solid/backends/udisks/udisksstorageaccess.cpp 2012-09-04 12:18:00.030489289 +0200 @@ -199,7 +199,14 @@ void UDisksStorageAccess::slotDBusReply( QDBusMessage msg = QDBusMessage::createMethodCall(UD_DBUS_SERVICE, drivePath, UD_DBUS_INTERFACE_DISKS_DEVICE, "DriveEject"); msg << QStringList(); // options, unused now c.call(msg, QDBus::NoBlock); - } + // power down removable USB hard drives, rhbz#852196 + UDisksDevice drive(drivePath); + if (drive.prop("DriveCanDetach").toBool()) { + QDBusMessage msg2 = QDBusMessage::createMethodCall(UD_DBUS_SERVICE, drivePath, UD_DBUS_INTERFACE_DISKS_DEVICE, "DriveDetach"); + msg2 << QStringList(); // options, unused now + c.call(msg2, QDBus::NoBlock); + } + } m_teardownInProgress = false; m_device->broadcastActionDone("teardown");