Added missing module initialization/uninitialization.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20341 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
4ed322c66e
commit
5b89b67d95
@ -21,6 +21,19 @@ HaikuKernelFileSystem::HaikuKernelFileSystem(file_system_module_info* fsModule)
|
||||
// destructor
|
||||
HaikuKernelFileSystem::~HaikuKernelFileSystem()
|
||||
{
|
||||
// call the kernel module uninitialization
|
||||
if (fFSModule->info.std_ops)
|
||||
fFSModule->info.std_ops(B_MODULE_UNINIT);
|
||||
}
|
||||
|
||||
// Init
|
||||
status_t
|
||||
HaikuKernelFileSystem::Init()
|
||||
{
|
||||
// call the kernel module initialization
|
||||
if (!fFSModule->info.std_ops)
|
||||
return B_OK;
|
||||
return fFSModule->info.std_ops(B_MODULE_INIT);
|
||||
}
|
||||
|
||||
// CreateVolume
|
||||
|
@ -15,6 +15,8 @@ public:
|
||||
file_system_module_info* fsModule);
|
||||
virtual ~HaikuKernelFileSystem();
|
||||
|
||||
status_t Init();
|
||||
|
||||
virtual status_t CreateVolume(Volume** volume, mount_id id);
|
||||
virtual status_t DeleteVolume(Volume* volume);
|
||||
|
||||
|
@ -273,8 +273,15 @@ UserlandFSServer::_CreateHaikuKernelInterface(const char* fsName,
|
||||
= new(nothrow) HaikuKernelFileSystem(module);
|
||||
if (!fileSystem)
|
||||
RETURN_ERROR(B_NO_MEMORY);
|
||||
ObjectDeleter<HaikuKernelFileSystem> fsDeleter(fileSystem);
|
||||
|
||||
// init the FS
|
||||
error = fileSystem->Init();
|
||||
if (error != B_OK)
|
||||
return error;
|
||||
|
||||
// everything went fine
|
||||
fsDeleter.Detach();
|
||||
*_fileSystem = fileSystem;
|
||||
return B_OK;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user