Lines Matching defs:partition

71 	inline partition_id operator()(const KPartition* partition) const
73 return partition->ID();
298 TRACE(" partition: %" B_PRId32 "\n", it->Value()->ID());
306 TRACE(" partition: %" B_PRId32 "\n", (*it)->ID());
417 if (KPartition* partition = FindPartition(id)) {
418 KDiskDevice* device = partition->Device();
436 KPartition* partition = iterator->Value();
437 if (partition->GetPath(&partitionPath) == B_OK
439 return partition;
527 if (KPartition* partition = FindPartition(path)) {
528 partition->Register();
529 return partition;
547 if (KPartition* partition = FindPartition(id)) {
548 partition->Register();
549 return partition;
602 // register partition
603 KPartition* partition = RegisterPartition(id);
604 if (!partition)
609 device = partition->Device();
615 // final check, if the partition still belongs to the device
616 if (partition->Device() == device)
617 return partition;
623 partition->Unregister();
631 // register partition
632 KPartition* partition = RegisterPartition(id);
633 if (!partition)
638 device = partition->Device();
644 // final check, if the partition still belongs to the device
645 if (partition->Device() == device)
646 return partition;
652 partition->Unregister();
658 KDiskDeviceManager::ScanPartition(KPartition* partition)
660 // TODO: This won't do. Locking the DDM while scanning the partition is not a
661 // good idea. Even locking the device doesn't feel right. Marking the partition
664 if (DeviceWriteLocker deviceLocker = partition->Device()) {
666 return _ScanPartition(partition, false);
863 KDiskDeviceManager::PartitionAdded(KPartition* partition)
865 return partition && fPartitions->Put(partition->ID(), partition) == B_OK;
870 KDiskDeviceManager::PartitionRemoved(KPartition* partition)
872 if (partition && partition->PrepareForRemoval()
873 && fPartitions->Remove(partition->ID())) {
874 // TODO: If adding the partition to the obsolete list fails (due to lack
876 fObsoletePartitions->Insert(partition);
877 partition->MarkObsolete();
885 KDiskDeviceManager::DeletePartition(KPartition* partition)
887 if (partition && partition->IsObsolete()
888 && partition->CountReferences() == 0
889 && partition->PrepareForDeletion()
890 && fObsoletePartitions->Remove(partition)) {
891 delete partition;
1012 // Even if we could not scan this partition, we want to try
1013 // and scan the rest. Just because one partition is invalid
1204 virtual bool VisitPre(KPartition *partition)
1206 partition->ClearFlags(B_PARTITION_BUSY
1224 KPartition *partition = FindPartition(job->ScopeID());
1225 if (!partition || partition->Device() != device)
1227 partition->AddFlags(B_PARTITION_BUSY);
1233 virtual bool VisitPre(KPartition *partition)
1236 if (partition->Parent() && partition->Parent()->IsBusy())
1237 partition->AddFlags(B_PARTITION_BUSY);
1241 virtual bool VisitPost(KPartition *partition)
1244 if ((partition->IsBusy() || partition->IsDescendantBusy())
1245 && partition->Parent()) {
1246 partition->Parent()->AddFlags(B_PARTITION_DESCENDANT_BUSY);
1319 KDiskDeviceManager::_ScanPartition(KPartition* partition, bool async,
1323 if (!partition)
1333 jobQueue->SetDevice(partition->Device());
1336 KDiskDeviceJob *job = fJobFactory->CreateScanPartitionJob(partition->ID());
1359 return _ScanPartition(partition, restrictScan);
1364 KDiskDeviceManager::_ScanPartition(KPartition* partition,
1367 // the partition's device must be write-locked
1368 if (partition == NULL)
1370 if (!partition->Device()->HasMedia() || partition->IsMounted())
1373 if (partition->CountChildren() > 0) {
1374 // Since this partition has already children, we don't scan it
1376 for (int32 i = 0; KPartition* child = partition->ChildAt(i); i++) {
1383 partition->GetPath(&partitionPath);
1386 // Just ignore the partition...
1387 if (partition->Offset() < 0 || partition->BlockSize() == 0
1388 || partition->Size() <= 0) {
1396 // publish the partition
1398 if (!partition->IsPublished()) {
1399 error = partition->PublishDevice();
1408 // find the disk system that returns the best priority for this partition
1409 float bestPriority = partition->DiskSystemPriority();
1421 float priority = diskSystem->Identify(partition, &cookie);
1428 bestDiskSystem->FreeIdentifyCookie(partition, bestCookie);
1435 // disk system doesn't identify the partition or worse than our
1438 diskSystem->FreeIdentifyCookie(partition, cookie);
1443 // now, if we have found a disk system, let it scan the partition
1446 error = bestDiskSystem->Scan(partition, bestCookie);
1447 bestDiskSystem->FreeIdentifyCookie(partition, bestCookie);
1449 partition->SetDiskSystem(bestDiskSystem, bestPriority);
1450 for (int32 i = 0; KPartition* child = partition->ChildAt(i); i++)
1458 // the partition(s) and thus will not really be unloaded