diff --git a/src/kits/storage/disk_device/DiskDeviceRoster.cpp b/src/kits/storage/disk_device/DiskDeviceRoster.cpp index e1fdb3c85b..bde877d8a1 100644 --- a/src/kits/storage/disk_device/DiskDeviceRoster.cpp +++ b/src/kits/storage/disk_device/DiskDeviceRoster.cpp @@ -212,8 +212,13 @@ BDiskDeviceRoster::VisitEachPartition(BDiskDeviceVisitor *visitor, BDiskDevice deviceOnStack; BDiskDevice *useDevice = (device ? device : &deviceOnStack); BPartition *foundPartition = NULL; - while (!foundPartition && GetNextDevice(useDevice) == B_OK) + while (GetNextDevice(useDevice) == B_OK) { foundPartition = useDevice->VisitEachDescendant(visitor); + if (foundPartition) { + terminatedEarly = true; + break; + } + } fDeviceCookie = oldCookie; if (!terminatedEarly) useDevice->Unset();