Pass the file system name to the FileSystem base class and store it there.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29610 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2009-03-19 13:14:12 +00:00
parent 432ce3738d
commit 69cd702b39
8 changed files with 25 additions and 15 deletions
@@ -10,8 +10,10 @@ FileSystem* FileSystem::sInstance = NULL;
// constructor
FileSystem::FileSystem()
FileSystem::FileSystem(const char* fsName)
{
strlcpy(fName, fsName, sizeof(fName));
sInstance = this;
}
@@ -19,11 +19,13 @@ class Volume;
class FileSystem {
public:
FileSystem();
FileSystem(const char* fsName);
virtual ~FileSystem();
static FileSystem* GetInstance();
const char* GetName() const { return fName; }
virtual status_t CreateVolume(Volume** volume, dev_t id) = 0;
virtual status_t DeleteVolume(Volume* volume) = 0;
@@ -45,6 +47,7 @@ protected:
VolumeList fVolumes;
FSCapabilities fCapabilities;
client_fs_type fClientFSType;
char fName[B_FILE_NAME_LENGTH];
static FileSystem* sInstance;
};
@@ -14,9 +14,10 @@ static const int32 kMaxBlockCacheBlocks = 16384;
// constructor
BeOSKernelFileSystem::BeOSKernelFileSystem(beos_vnode_ops* fsOps)
BeOSKernelFileSystem::BeOSKernelFileSystem(const char* fsName,
beos_vnode_ops* fsOps)
:
FileSystem(),
FileSystem(fsName),
fFSOps(fsOps),
fBlockCacheInitialized(false)
{
@@ -250,7 +251,7 @@ userlandfs_create_file_system(const char* fsName, image_id image,
// create the file system
BeOSKernelFileSystem* fileSystem
= new(std::nothrow) BeOSKernelFileSystem(fsOps);
= new(std::nothrow) BeOSKernelFileSystem(fsName, fsOps);
if (!fileSystem)
RETURN_ERROR(B_NO_MEMORY);
@@ -11,7 +11,8 @@ namespace UserlandFS {
class BeOSKernelFileSystem : public FileSystem {
public:
BeOSKernelFileSystem(beos_vnode_ops* fsOps);
BeOSKernelFileSystem(const char* fsName,
beos_vnode_ops* fsOps);
virtual ~BeOSKernelFileSystem();
status_t Init();
@@ -114,9 +114,10 @@ private:
};
FUSEFileSystem::FUSEFileSystem(int (*mainFunction)(int, const char* const*))
FUSEFileSystem::FUSEFileSystem(const char* fsName,
int (*mainFunction)(int, const char* const*))
:
FileSystem(),
FileSystem(fsName),
fMainFunction(mainFunction)
{
}
@@ -154,7 +155,7 @@ FUSEFileSystem::InitClientFS(const char* parameters)
{
// parse the parameters
ArgumentVector args;
status_t error = args.Init("FUSE", parameters);
status_t error = args.Init(GetName(), parameters);
if (error != B_OK)
RETURN_ERROR(error);
@@ -184,7 +185,8 @@ printf("userlandfs_create_file_system()\n");
printf("userlandfs_create_file_system(): found main: %p\n", mainFunction);
// create the file system
FUSEFileSystem* fileSystem = new(std::nothrow) FUSEFileSystem(mainFunction);
FUSEFileSystem* fileSystem = new(std::nothrow) FUSEFileSystem(fsName,
mainFunction);
if (fileSystem == NULL)
return B_NO_MEMORY;
@@ -12,7 +12,7 @@ namespace UserlandFS {
class FUSEFileSystem : public FileSystem {
public:
FUSEFileSystem(
FUSEFileSystem(const char* fsName,
int (*mainFunction)(int,
const char* const*));
virtual ~FUSEFileSystem();
@@ -79,9 +79,10 @@ struct HaikuKernelFileSystem::NodeCapabilitiesTable
// constructor
HaikuKernelFileSystem::HaikuKernelFileSystem(file_system_module_info* fsModule)
HaikuKernelFileSystem::HaikuKernelFileSystem(const char* fsName,
file_system_module_info* fsModule)
:
FileSystem(),
FileSystem(fsName),
fFSModule(fsModule),
fIORequests(NULL),
fNodeCapabilities(NULL),
@@ -410,7 +411,7 @@ userlandfs_create_file_system(const char* fsName, image_id image,
// create the file system
HaikuKernelFileSystem* fileSystem
= new(std::nothrow) HaikuKernelFileSystem(module);
= new(std::nothrow) HaikuKernelFileSystem(fsName, module);
if (!fileSystem)
RETURN_ERROR(B_NO_MEMORY);
@@ -21,7 +21,7 @@ struct HaikuKernelIORequest;
class HaikuKernelFileSystem : public FileSystem {
public:
HaikuKernelFileSystem(
HaikuKernelFileSystem(const char* fsName,
file_system_module_info* fsModule);
virtual ~HaikuKernelFileSystem();