From 69cd702b39187815d61ca260bb08df759f2f352e Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Thu, 19 Mar 2009 13:14:12 +0000 Subject: [PATCH] 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 --- .../file_systems/userlandfs/server/FileSystem.cpp | 4 +++- .../kernel/file_systems/userlandfs/server/FileSystem.h | 5 ++++- .../userlandfs/server/beos/BeOSKernelFileSystem.cpp | 7 ++++--- .../userlandfs/server/beos/BeOSKernelFileSystem.h | 3 ++- .../userlandfs/server/fuse/FUSEFileSystem.cpp | 10 ++++++---- .../userlandfs/server/fuse/FUSEFileSystem.h | 2 +- .../userlandfs/server/haiku/HaikuKernelFileSystem.cpp | 7 ++++--- .../userlandfs/server/haiku/HaikuKernelFileSystem.h | 2 +- 8 files changed, 25 insertions(+), 15 deletions(-) diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/FileSystem.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/FileSystem.cpp index d2602859fa..2fb7c597fe 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/server/FileSystem.cpp +++ b/src/add-ons/kernel/file_systems/userlandfs/server/FileSystem.cpp @@ -10,8 +10,10 @@ FileSystem* FileSystem::sInstance = NULL; // constructor -FileSystem::FileSystem() +FileSystem::FileSystem(const char* fsName) { + strlcpy(fName, fsName, sizeof(fName)); + sInstance = this; } diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/FileSystem.h b/src/add-ons/kernel/file_systems/userlandfs/server/FileSystem.h index 58ef70038f..eb39919824 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/server/FileSystem.h +++ b/src/add-ons/kernel/file_systems/userlandfs/server/FileSystem.h @@ -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; }; diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelFileSystem.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelFileSystem.cpp index 3e28be308d..302f688b26 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelFileSystem.cpp +++ b/src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelFileSystem.cpp @@ -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); diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelFileSystem.h b/src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelFileSystem.h index d74cf7a43c..cb23d1e337 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelFileSystem.h +++ b/src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelFileSystem.h @@ -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(); diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/fuse/FUSEFileSystem.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/fuse/FUSEFileSystem.cpp index 54051654bc..b4bf6430a6 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/server/fuse/FUSEFileSystem.cpp +++ b/src/add-ons/kernel/file_systems/userlandfs/server/fuse/FUSEFileSystem.cpp @@ -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; diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/fuse/FUSEFileSystem.h b/src/add-ons/kernel/file_systems/userlandfs/server/fuse/FUSEFileSystem.h index 6493bfa844..83be64ab0e 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/server/fuse/FUSEFileSystem.h +++ b/src/add-ons/kernel/file_systems/userlandfs/server/fuse/FUSEFileSystem.h @@ -12,7 +12,7 @@ namespace UserlandFS { class FUSEFileSystem : public FileSystem { public: - FUSEFileSystem( + FUSEFileSystem(const char* fsName, int (*mainFunction)(int, const char* const*)); virtual ~FUSEFileSystem(); diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelFileSystem.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelFileSystem.cpp index f167c98c94..ff0dd92d6f 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelFileSystem.cpp +++ b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelFileSystem.cpp @@ -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); diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelFileSystem.h b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelFileSystem.h index fbe2a0bf6d..5b9c0b7fef 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelFileSystem.h +++ b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelFileSystem.h @@ -21,7 +21,7 @@ struct HaikuKernelIORequest; class HaikuKernelFileSystem : public FileSystem { public: - HaikuKernelFileSystem( + HaikuKernelFileSystem(const char* fsName, file_system_module_info* fsModule); virtual ~HaikuKernelFileSystem();