* KDiskDeviceManager::{Find,Load}DiskSystem() can also find the disk

system by pretty name (not only module name) now.
* _user_initialize_partition() loads the disk system by pretty name.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22880 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2007-11-10 20:30:22 +00:00
parent aee1388ada
commit c9830ce0f5
3 changed files with 14 additions and 8 deletions
@@ -81,12 +81,12 @@ public:
// Disk Systems // Disk Systems
// manager must be locked // manager must be locked
KDiskSystem *FindDiskSystem(const char *name); KDiskSystem *FindDiskSystem(const char *name, bool byPrettyName = false);
KDiskSystem *FindDiskSystem(disk_system_id id); KDiskSystem *FindDiskSystem(disk_system_id id);
int32 CountDiskSystems(); int32 CountDiskSystems();
KDiskSystem *NextDiskSystem(int32 *cookie); KDiskSystem *NextDiskSystem(int32 *cookie);
KDiskSystem *LoadDiskSystem(const char *name); KDiskSystem *LoadDiskSystem(const char *name, bool byPrettyName = false);
KDiskSystem *LoadDiskSystem(disk_system_id id); KDiskSystem *LoadDiskSystem(disk_system_id id);
KDiskSystem *LoadNextDiskSystem(int32 *cookie); KDiskSystem *LoadNextDiskSystem(int32 *cookie);
@@ -630,12 +630,17 @@ KDiskDeviceManager::DeletePartition(KPartition *partition)
// FindDiskSystem // FindDiskSystem
KDiskSystem * KDiskSystem *
KDiskDeviceManager::FindDiskSystem(const char *name) KDiskDeviceManager::FindDiskSystem(const char *name, bool byPrettyName)
{ {
for (int32 cookie = 0; for (int32 cookie = 0;
KDiskSystem *diskSystem = NextDiskSystem(&cookie); ) { KDiskSystem *diskSystem = NextDiskSystem(&cookie); ) {
if (!strcmp(name, diskSystem->Name())) if (byPrettyName) {
return diskSystem; if (strcmp(name, diskSystem->PrettyName()) == 0)
return diskSystem;
} else {
if (strcmp(name, diskSystem->Name()) == 0)
return diskSystem;
}
} }
return NULL; return NULL;
} }
@@ -674,11 +679,11 @@ KDiskDeviceManager::NextDiskSystem(int32 *cookie)
// LoadDiskSystem // LoadDiskSystem
KDiskSystem * KDiskSystem *
KDiskDeviceManager::LoadDiskSystem(const char *name) KDiskDeviceManager::LoadDiskSystem(const char *name, bool byPrettyName)
{ {
KDiskSystem *diskSystem = NULL; KDiskSystem *diskSystem = NULL;
if (ManagerLocker locker = this) { if (ManagerLocker locker = this) {
diskSystem = FindDiskSystem(name); diskSystem = FindDiskSystem(name, byPrettyName);
if (diskSystem && diskSystem->Load() != B_OK) if (diskSystem && diskSystem->Load() != B_OK)
diskSystem = NULL; diskSystem = NULL;
} }
@@ -1162,7 +1162,8 @@ _user_initialize_partition(partition_id partitionID, int32* _changeCounter,
return B_BAD_VALUE; return B_BAD_VALUE;
// load the new disk system // load the new disk system
KDiskSystem *diskSystem = manager->LoadDiskSystem(diskSystemName.value); KDiskSystem *diskSystem = manager->LoadDiskSystem(diskSystemName.value,
true);
if (!diskSystem) if (!diskSystem)
return B_ENTRY_NOT_FOUND; return B_ENTRY_NOT_FOUND;
DiskSystemLoader loader(diskSystem, true); DiskSystemLoader loader(diskSystem, true);