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:
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user