diff --git a/headers/private/disk_scanner/disk_scanner.h b/headers/private/disk_scanner/disk_scanner.h index c3e82e3a27..c8fc690602 100644 --- a/headers/private/disk_scanner/disk_scanner.h +++ b/headers/private/disk_scanner/disk_scanner.h @@ -11,7 +11,7 @@ struct partition_module_info; struct session_info; struct session_module_info; -#define PARTSCAN_MODULE_NAME "disk_scanner/disk_scanner/v1" +#define DISK_SCANNER_MODULE_NAME "disk_scanner/disk_scanner/v1" typedef status_t (*disk_scanner_get_session_module_hook)(int deviceFD, off_t deviceSize, int32 blockSize, diff --git a/src/add-ons/kernel/disk_scanner/disk_scanner.c b/src/add-ons/kernel/disk_scanner/disk_scanner.c index b9a2519d33..04ff483342 100644 --- a/src/add-ons/kernel/disk_scanner/disk_scanner.c +++ b/src/add-ons/kernel/disk_scanner/disk_scanner.c @@ -16,8 +16,8 @@ static const char *kSessionModulePrefix = "disk_scanner/session"; static const char *kPartitionModulePrefix = "disk_scanner/partition"; static const char *kFSModulePrefix = "disk_scanner/fs"; -#define TRACE(x) -//#define TRACE(x) dprintf x +//#define TRACE(x) +#define TRACE(x) dprintf x // prototypes static status_t read_block(int fd, off_t offset, size_t size, uchar **block); @@ -284,12 +284,13 @@ disk_scanner_get_partition_fs_info(int deviceFD, while (read_next_module_name(list, moduleName, &bufferSize) == B_OK) { fs_module_info *module = NULL; - if (get_module(moduleName, (module_info**)&module) == B_OK) { - if (module->identify(deviceFD, partitionInfo)) { + TRACE(("disk_scanner: trying fs module: `%s'\n", moduleName)); + if (get_module(moduleName, (module_info**)&module) == B_OK && module) { + if (module->identify(deviceFD, partitionInfo)) error = B_OK; - break; - } put_module(moduleName); + if (error == B_OK) + break; } } close_module_list(list); @@ -301,7 +302,7 @@ static disk_scanner_module_info disk_scanner_module = { // module_info { - PARTSCAN_MODULE_NAME, + DISK_SCANNER_MODULE_NAME, 0, // better B_KEEP_LOADED? std_ops },