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 // constructor
FileSystem::FileSystem() FileSystem::FileSystem(const char* fsName)
{ {
strlcpy(fName, fsName, sizeof(fName));
sInstance = this; sInstance = this;
} }
@@ -19,11 +19,13 @@ class Volume;
class FileSystem { class FileSystem {
public: public:
FileSystem(); FileSystem(const char* fsName);
virtual ~FileSystem(); virtual ~FileSystem();
static FileSystem* GetInstance(); static FileSystem* GetInstance();
const char* GetName() const { return fName; }
virtual status_t CreateVolume(Volume** volume, dev_t id) = 0; virtual status_t CreateVolume(Volume** volume, dev_t id) = 0;
virtual status_t DeleteVolume(Volume* volume) = 0; virtual status_t DeleteVolume(Volume* volume) = 0;
@@ -45,6 +47,7 @@ protected:
VolumeList fVolumes; VolumeList fVolumes;
FSCapabilities fCapabilities; FSCapabilities fCapabilities;
client_fs_type fClientFSType; client_fs_type fClientFSType;
char fName[B_FILE_NAME_LENGTH];
static FileSystem* sInstance; static FileSystem* sInstance;
}; };
@@ -14,9 +14,10 @@ static const int32 kMaxBlockCacheBlocks = 16384;
// constructor // constructor
BeOSKernelFileSystem::BeOSKernelFileSystem(beos_vnode_ops* fsOps) BeOSKernelFileSystem::BeOSKernelFileSystem(const char* fsName,
beos_vnode_ops* fsOps)
: :
FileSystem(), FileSystem(fsName),
fFSOps(fsOps), fFSOps(fsOps),
fBlockCacheInitialized(false) fBlockCacheInitialized(false)
{ {
@@ -250,7 +251,7 @@ userlandfs_create_file_system(const char* fsName, image_id image,
// create the file system // create the file system
BeOSKernelFileSystem* fileSystem BeOSKernelFileSystem* fileSystem
= new(std::nothrow) BeOSKernelFileSystem(fsOps); = new(std::nothrow) BeOSKernelFileSystem(fsName, fsOps);
if (!fileSystem) if (!fileSystem)
RETURN_ERROR(B_NO_MEMORY); RETURN_ERROR(B_NO_MEMORY);
@@ -11,7 +11,8 @@ namespace UserlandFS {
class BeOSKernelFileSystem : public FileSystem { class BeOSKernelFileSystem : public FileSystem {
public: public:
BeOSKernelFileSystem(beos_vnode_ops* fsOps); BeOSKernelFileSystem(const char* fsName,
beos_vnode_ops* fsOps);
virtual ~BeOSKernelFileSystem(); virtual ~BeOSKernelFileSystem();
status_t Init(); 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) fMainFunction(mainFunction)
{ {
} }
@@ -154,7 +155,7 @@ FUSEFileSystem::InitClientFS(const char* parameters)
{ {
// parse the parameters // parse the parameters
ArgumentVector args; ArgumentVector args;
status_t error = args.Init("FUSE", parameters); status_t error = args.Init(GetName(), parameters);
if (error != B_OK) if (error != B_OK)
RETURN_ERROR(error); RETURN_ERROR(error);
@@ -184,7 +185,8 @@ printf("userlandfs_create_file_system()\n");
printf("userlandfs_create_file_system(): found main: %p\n", mainFunction); printf("userlandfs_create_file_system(): found main: %p\n", mainFunction);
// create the file system // create the file system
FUSEFileSystem* fileSystem = new(std::nothrow) FUSEFileSystem(mainFunction); FUSEFileSystem* fileSystem = new(std::nothrow) FUSEFileSystem(fsName,
mainFunction);
if (fileSystem == NULL) if (fileSystem == NULL)
return B_NO_MEMORY; return B_NO_MEMORY;
@@ -12,7 +12,7 @@ namespace UserlandFS {
class FUSEFileSystem : public FileSystem { class FUSEFileSystem : public FileSystem {
public: public:
FUSEFileSystem( FUSEFileSystem(const char* fsName,
int (*mainFunction)(int, int (*mainFunction)(int,
const char* const*)); const char* const*));
virtual ~FUSEFileSystem(); virtual ~FUSEFileSystem();
@@ -79,9 +79,10 @@ struct HaikuKernelFileSystem::NodeCapabilitiesTable
// constructor // constructor
HaikuKernelFileSystem::HaikuKernelFileSystem(file_system_module_info* fsModule) HaikuKernelFileSystem::HaikuKernelFileSystem(const char* fsName,
file_system_module_info* fsModule)
: :
FileSystem(), FileSystem(fsName),
fFSModule(fsModule), fFSModule(fsModule),
fIORequests(NULL), fIORequests(NULL),
fNodeCapabilities(NULL), fNodeCapabilities(NULL),
@@ -410,7 +411,7 @@ userlandfs_create_file_system(const char* fsName, image_id image,
// create the file system // create the file system
HaikuKernelFileSystem* fileSystem HaikuKernelFileSystem* fileSystem
= new(std::nothrow) HaikuKernelFileSystem(module); = new(std::nothrow) HaikuKernelFileSystem(fsName, module);
if (!fileSystem) if (!fileSystem)
RETURN_ERROR(B_NO_MEMORY); RETURN_ERROR(B_NO_MEMORY);
@@ -21,7 +21,7 @@ struct HaikuKernelIORequest;
class HaikuKernelFileSystem : public FileSystem { class HaikuKernelFileSystem : public FileSystem {
public: public:
HaikuKernelFileSystem( HaikuKernelFileSystem(const char* fsName,
file_system_module_info* fsModule); file_system_module_info* fsModule);
virtual ~HaikuKernelFileSystem(); virtual ~HaikuKernelFileSystem();