diff --git a/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/FileSystem.cpp b/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/FileSystem.cpp index 81dcbb3555..da994d3a97 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/FileSystem.cpp +++ b/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/FileSystem.cpp @@ -28,17 +28,19 @@ struct FileSystem::SelectSyncMap // constructor FileSystem::FileSystem() - : fVolumes(), - fVolumeLock(), - fName(), - fNotificationPort(NULL), - fNotificationThread(-1), - fPortPool(), - fSelectSyncs(NULL), - fSettings(NULL), - fUserlandServerTeam(-1), - fInitialized(false), - fTerminating(false) + : + fVolumes(), + fVolumeLock(), + fName(), + fTeam(-1), + fNotificationPort(NULL), + fNotificationThread(-1), + fPortPool(), + fSelectSyncs(NULL), + fSettings(NULL), + fUserlandServerTeam(-1), + fInitialized(false), + fTerminating(false) { } @@ -67,7 +69,7 @@ FileSystem::~FileSystem() // Init status_t -FileSystem::Init(const char* name, Port::Info* infos, int32 count, +FileSystem::Init(const char* name, team_id team, Port::Info* infos, int32 count, const FSCapabilities& capabilities) { PRINT(("FileSystem::Init(\"%s\", %p, %ld)\n", name, infos, count)); @@ -81,6 +83,7 @@ FileSystem::Init(const char* name, Port::Info* infos, int32 count, if (!fName.SetTo(name)) return B_NO_MEMORY; + fTeam = team; fCapabilities = capabilities; // create the select sync entry map diff --git a/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/FileSystem.h b/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/FileSystem.h index 85f6f57d95..716ce750e7 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/FileSystem.h +++ b/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/FileSystem.h @@ -25,11 +25,12 @@ public: FileSystem(); ~FileSystem(); - status_t Init(const char* name, Port::Info* infos, - int32 infoCount, + status_t Init(const char* name, team_id team, + Port::Info* infos, int32 infoCount, const FSCapabilities& capabilities); const char* GetName() const; + team_id GetTeam() const { return fTeam; } const FSCapabilities& GetCapabilities() const; inline bool HasCapability(uint32 capability) const; @@ -65,6 +66,7 @@ private: Vector fVolumes; Locker fVolumeLock; String fName; + team_id fTeam; FSCapabilities fCapabilities; RequestPort* fNotificationPort; thread_id fNotificationThread; diff --git a/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/FileSystemInitializer.cpp b/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/FileSystemInitializer.cpp index df6acbbd1b..850174e501 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/FileSystemInitializer.cpp +++ b/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/FileSystemInitializer.cpp @@ -123,12 +123,18 @@ FileSystemInitializer::_Init(port_id port) RETURN_ERROR(B_BAD_DATA); } + // get the port's team + port_info portInfo; + status_t error = get_port_info(port, &portInfo); + if (error != B_OK) + RETURN_ERROR(error); + // create and init the FileSystem fFileSystem = new(std::nothrow) FileSystem; if (!fFileSystem) return B_NO_MEMORY; - status_t error = fFileSystem->Init(fName, info->portInfos, + error = fFileSystem->Init(fName, portInfo.team, info->portInfos, info->portInfoCount, info->capabilities); if (error != B_OK) RETURN_ERROR(error);