* 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:
@@ -81,12 +81,12 @@ public:
|
||||
// Disk Systems
|
||||
|
||||
// manager must be locked
|
||||
KDiskSystem *FindDiskSystem(const char *name);
|
||||
KDiskSystem *FindDiskSystem(const char *name, bool byPrettyName = false);
|
||||
KDiskSystem *FindDiskSystem(disk_system_id id);
|
||||
int32 CountDiskSystems();
|
||||
KDiskSystem *NextDiskSystem(int32 *cookie);
|
||||
|
||||
KDiskSystem *LoadDiskSystem(const char *name);
|
||||
KDiskSystem *LoadDiskSystem(const char *name, bool byPrettyName = false);
|
||||
KDiskSystem *LoadDiskSystem(disk_system_id id);
|
||||
KDiskSystem *LoadNextDiskSystem(int32 *cookie);
|
||||
|
||||
|
||||
@@ -630,12 +630,17 @@ KDiskDeviceManager::DeletePartition(KPartition *partition)
|
||||
|
||||
// FindDiskSystem
|
||||
KDiskSystem *
|
||||
KDiskDeviceManager::FindDiskSystem(const char *name)
|
||||
KDiskDeviceManager::FindDiskSystem(const char *name, bool byPrettyName)
|
||||
{
|
||||
for (int32 cookie = 0;
|
||||
KDiskSystem *diskSystem = NextDiskSystem(&cookie); ) {
|
||||
if (!strcmp(name, diskSystem->Name()))
|
||||
return diskSystem;
|
||||
if (byPrettyName) {
|
||||
if (strcmp(name, diskSystem->PrettyName()) == 0)
|
||||
return diskSystem;
|
||||
} else {
|
||||
if (strcmp(name, diskSystem->Name()) == 0)
|
||||
return diskSystem;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
@@ -674,11 +679,11 @@ KDiskDeviceManager::NextDiskSystem(int32 *cookie)
|
||||
|
||||
// LoadDiskSystem
|
||||
KDiskSystem *
|
||||
KDiskDeviceManager::LoadDiskSystem(const char *name)
|
||||
KDiskDeviceManager::LoadDiskSystem(const char *name, bool byPrettyName)
|
||||
{
|
||||
KDiskSystem *diskSystem = NULL;
|
||||
if (ManagerLocker locker = this) {
|
||||
diskSystem = FindDiskSystem(name);
|
||||
diskSystem = FindDiskSystem(name, byPrettyName);
|
||||
if (diskSystem && diskSystem->Load() != B_OK)
|
||||
diskSystem = NULL;
|
||||
}
|
||||
|
||||
@@ -1162,7 +1162,8 @@ _user_initialize_partition(partition_id partitionID, int32* _changeCounter,
|
||||
return B_BAD_VALUE;
|
||||
|
||||
// load the new disk system
|
||||
KDiskSystem *diskSystem = manager->LoadDiskSystem(diskSystemName.value);
|
||||
KDiskSystem *diskSystem = manager->LoadDiskSystem(diskSystemName.value,
|
||||
true);
|
||||
if (!diskSystem)
|
||||
return B_ENTRY_NOT_FOUND;
|
||||
DiskSystemLoader loader(diskSystem, true);
|
||||
|
||||
Reference in New Issue
Block a user