From 1bf034d2f59572b7f67b412bdba39c5a45356780 Mon Sep 17 00:00:00 2001 From: "Bruno G. Albuquerque" Date: Sat, 16 May 2009 21:41:33 +0000 Subject: [PATCH] - Check if we had any changes in status before sending a notification for a new inserted media. This fixes ticket #3921. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30774 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../kernel/disk_device_manager/KDiskDeviceManager.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/system/kernel/disk_device_manager/KDiskDeviceManager.cpp b/src/system/kernel/disk_device_manager/KDiskDeviceManager.cpp index 523054f1e6..2b056ef187 100644 --- a/src/system/kernel/disk_device_manager/KDiskDeviceManager.cpp +++ b/src/system/kernel/disk_device_manager/KDiskDeviceManager.cpp @@ -1466,9 +1466,15 @@ KDiskDeviceManager::_CheckMediaStatus() continue; bool hadMedia = device->HasMedia(); + bool changedMedia = device->MediaChanged(); device->UpdateMediaStatusIfNeeded(); - if (!device->MediaChanged() && (device->HasMedia() || !hadMedia)) + // Detect it there was any status change since last check. + bool updated = (hadMedia != device->HasMedia()) || + (changedMedia != device->MediaChanged()); + + if ((!device->MediaChanged() && + (device->HasMedia() || !hadMedia)) || !updated) continue; device->MarkBusy(true);