diff options
-rw-r--r-- | Kernel/Bus/USB/SysFSUSB.cpp | 2 | ||||
-rw-r--r-- | Kernel/Bus/USB/SysFSUSB.h | 2 | ||||
-rw-r--r-- | Kernel/Devices/Device.cpp | 4 | ||||
-rw-r--r-- | Kernel/FileSystem/FileSystem.cpp | 6 | ||||
-rw-r--r-- | Kernel/FileSystem/FileSystem.h | 8 | ||||
-rw-r--r-- | Kernel/FileSystem/Inode.h | 2 | ||||
-rw-r--r-- | Kernel/FileSystem/InodeIdentifier.h | 7 | ||||
-rw-r--r-- | Kernel/FileSystem/SysFS.cpp | 2 | ||||
-rw-r--r-- | Kernel/FileSystem/SysFS.h | 6 | ||||
-rw-r--r-- | Kernel/FileSystem/SysFSComponent.cpp | 2 | ||||
-rw-r--r-- | Kernel/FileSystem/SysFSComponent.h | 4 | ||||
-rw-r--r-- | Kernel/GlobalProcessExposed.cpp | 2 | ||||
-rw-r--r-- | Kernel/Process.h | 6 | ||||
-rw-r--r-- | Kernel/ProcessExposed.cpp | 2 | ||||
-rw-r--r-- | Kernel/ProcessExposed.h | 6 | ||||
-rw-r--r-- | Kernel/ProcessProcFSTraits.cpp | 2 | ||||
-rw-r--r-- | Kernel/ProcessSpecificExposed.cpp | 6 | ||||
-rw-r--r-- | Kernel/Syscalls/statvfs.cpp | 2 |
18 files changed, 36 insertions, 35 deletions
diff --git a/Kernel/Bus/USB/SysFSUSB.cpp b/Kernel/Bus/USB/SysFSUSB.cpp index ecb64f352e..b0b539c8e2 100644 --- a/Kernel/Bus/USB/SysFSUSB.cpp +++ b/Kernel/Bus/USB/SysFSUSB.cpp @@ -91,7 +91,7 @@ ErrorOr<size_t> SysFSUSBDeviceInformation::read_bytes(off_t offset, size_t count return nread; } -ErrorOr<void> SysFSUSBBusDirectory::traverse_as_directory(unsigned fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const +ErrorOr<void> SysFSUSBBusDirectory::traverse_as_directory(FileSystemID fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const { SpinlockLocker lock(m_lock); // Note: if the parent directory is null, it means something bad happened as this should not happen for the USB directory. diff --git a/Kernel/Bus/USB/SysFSUSB.h b/Kernel/Bus/USB/SysFSUSB.h index ffb14a3740..066254dcc9 100644 --- a/Kernel/Bus/USB/SysFSUSB.h +++ b/Kernel/Bus/USB/SysFSUSB.h @@ -46,7 +46,7 @@ public: void plug(USB::Device&); void unplug(USB::Device&); - virtual ErrorOr<void> traverse_as_directory(unsigned, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)>) const override; + virtual ErrorOr<void> traverse_as_directory(FileSystemID, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)>) const override; virtual RefPtr<SysFSComponent> lookup(StringView name) override; private: diff --git a/Kernel/Devices/Device.cpp b/Kernel/Devices/Device.cpp index ea4063117d..57ba22bd29 100644 --- a/Kernel/Devices/Device.cpp +++ b/Kernel/Devices/Device.cpp @@ -45,7 +45,7 @@ SysFSBlockDevicesDirectory::SysFSBlockDevicesDirectory(SysFSDevicesDirectory con { } -ErrorOr<void> SysFSBlockDevicesDirectory::traverse_as_directory(unsigned fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const +ErrorOr<void> SysFSBlockDevicesDirectory::traverse_as_directory(FileSystemID fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const { VERIFY(m_parent_directory); TRY(callback({ ".", { fsid, component_index() }, 0 })); @@ -82,7 +82,7 @@ SysFSCharacterDevicesDirectory::SysFSCharacterDevicesDirectory(SysFSDevicesDirec : SysFSDirectory("char"sv, devices_directory) { } -ErrorOr<void> SysFSCharacterDevicesDirectory::traverse_as_directory(unsigned fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const +ErrorOr<void> SysFSCharacterDevicesDirectory::traverse_as_directory(FileSystemID fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const { VERIFY(m_parent_directory); TRY(callback({ ".", { fsid, component_index() }, 0 })); diff --git a/Kernel/FileSystem/FileSystem.cpp b/Kernel/FileSystem/FileSystem.cpp index 10eb4f50f4..368d924425 100644 --- a/Kernel/FileSystem/FileSystem.cpp +++ b/Kernel/FileSystem/FileSystem.cpp @@ -16,9 +16,9 @@ namespace Kernel { static u32 s_lastFileSystemID; -static Singleton<HashMap<u32, FileSystem*>> s_file_system_map; +static Singleton<HashMap<FileSystemID, FileSystem*>> s_file_system_map; -static HashMap<u32, FileSystem*>& all_file_systems() +static HashMap<FileSystemID, FileSystem*>& all_file_systems() { return *s_file_system_map; } @@ -34,7 +34,7 @@ FileSystem::~FileSystem() s_file_system_map->remove(m_fsid); } -FileSystem* FileSystem::from_fsid(u32 id) +FileSystem* FileSystem::from_fsid(FileSystemID id) { auto it = all_file_systems().find(id); if (it != all_file_systems().end()) diff --git a/Kernel/FileSystem/FileSystem.h b/Kernel/FileSystem/FileSystem.h index 5e5fe1dde2..96bf7385a3 100644 --- a/Kernel/FileSystem/FileSystem.h +++ b/Kernel/FileSystem/FileSystem.h @@ -26,8 +26,8 @@ class FileSystem : public RefCounted<FileSystem> { public: virtual ~FileSystem(); - unsigned fsid() const { return m_fsid; } - static FileSystem* from_fsid(u32); + FileSystemID fsid() const { return m_fsid; } + static FileSystem* from_fsid(FileSystemID); static void sync(); static void lock_all(); @@ -72,7 +72,7 @@ protected: mutable Mutex m_lock { "FS" }; private: - unsigned m_fsid { 0 }; + FileSystemID m_fsid; u64 m_block_size { 0 }; size_t m_fragment_size { 0 }; bool m_readonly { false }; @@ -94,7 +94,7 @@ namespace AK { template<> struct Traits<Kernel::InodeIdentifier> : public GenericTraits<Kernel::InodeIdentifier> { - static unsigned hash(const Kernel::InodeIdentifier& inode) { return pair_int_hash(inode.fsid(), inode.index().value()); } + static unsigned hash(const Kernel::InodeIdentifier& inode) { return pair_int_hash(inode.fsid().value(), inode.index().value()); } }; } diff --git a/Kernel/FileSystem/Inode.h b/Kernel/FileSystem/Inode.h index 6ae9f03b11..85a8cae66c 100644 --- a/Kernel/FileSystem/Inode.h +++ b/Kernel/FileSystem/Inode.h @@ -35,7 +35,7 @@ public: FileSystem& fs() { return m_file_system; } FileSystem const& fs() const { return m_file_system; } - unsigned fsid() const { return m_file_system.fsid(); } + FileSystemID fsid() const { return m_file_system.fsid(); } InodeIndex index() const { return m_index; } size_t size() const { return metadata().size; } diff --git a/Kernel/FileSystem/InodeIdentifier.h b/Kernel/FileSystem/InodeIdentifier.h index bd07c7d1cd..2af6d5f6c3 100644 --- a/Kernel/FileSystem/InodeIdentifier.h +++ b/Kernel/FileSystem/InodeIdentifier.h @@ -15,12 +15,13 @@ namespace Kernel { class FileSystem; struct InodeMetadata; +TYPEDEF_DISTINCT_ORDERED_ID(u32, FileSystemID); TYPEDEF_DISTINCT_ORDERED_ID(u64, InodeIndex); class InodeIdentifier { public: InodeIdentifier() = default; - InodeIdentifier(u32 fsid, InodeIndex inode) + InodeIdentifier(FileSystemID fsid, InodeIndex inode) : m_fsid(fsid) , m_index(inode) { @@ -28,7 +29,7 @@ public: bool is_valid() const { return m_fsid != 0 && m_index != 0; } - u32 fsid() const { return m_fsid; } + FileSystemID fsid() const { return m_fsid; } InodeIndex index() const { return m_index; } FileSystem* fs(); @@ -45,7 +46,7 @@ public: } private: - u32 m_fsid { 0 }; + FileSystemID m_fsid { 0 }; InodeIndex m_index { 0 }; }; diff --git a/Kernel/FileSystem/SysFS.cpp b/Kernel/FileSystem/SysFS.cpp index 66457930cb..b3c30d7e07 100644 --- a/Kernel/FileSystem/SysFS.cpp +++ b/Kernel/FileSystem/SysFS.cpp @@ -46,7 +46,7 @@ NonnullRefPtr<SysFSRootDirectory> SysFSRootDirectory::create() return adopt_ref(*new (nothrow) SysFSRootDirectory); } -ErrorOr<void> SysFSRootDirectory::traverse_as_directory(unsigned fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const +ErrorOr<void> SysFSRootDirectory::traverse_as_directory(FileSystemID fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const { MutexLocker locker(SysFSComponentRegistry::the().get_lock()); TRY(callback({ ".", { fsid, component_index() }, 0 })); diff --git a/Kernel/FileSystem/SysFS.h b/Kernel/FileSystem/SysFS.h index 86772c2633..eef4e4c88c 100644 --- a/Kernel/FileSystem/SysFS.h +++ b/Kernel/FileSystem/SysFS.h @@ -19,7 +19,7 @@ class SysFSRootDirectory final : public SysFSDirectory { public: static NonnullRefPtr<SysFSRootDirectory> create(); - virtual ErrorOr<void> traverse_as_directory(unsigned, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)>) const override; + virtual ErrorOr<void> traverse_as_directory(FileSystemID, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)>) const override; private: SysFSRootDirectory(); @@ -53,7 +53,7 @@ private: class SysFSBlockDevicesDirectory final : public SysFSDirectory { public: static NonnullRefPtr<SysFSBlockDevicesDirectory> must_create(SysFSDevicesDirectory const&); - virtual ErrorOr<void> traverse_as_directory(unsigned, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)>) const override; + virtual ErrorOr<void> traverse_as_directory(FileSystemID, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)>) const override; virtual RefPtr<SysFSComponent> lookup(StringView name) override; private: @@ -63,7 +63,7 @@ private: class SysFSCharacterDevicesDirectory final : public SysFSDirectory { public: static NonnullRefPtr<SysFSCharacterDevicesDirectory> must_create(SysFSDevicesDirectory const&); - virtual ErrorOr<void> traverse_as_directory(unsigned, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)>) const override; + virtual ErrorOr<void> traverse_as_directory(FileSystemID, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)>) const override; virtual RefPtr<SysFSComponent> lookup(StringView name) override; private: diff --git a/Kernel/FileSystem/SysFSComponent.cpp b/Kernel/FileSystem/SysFSComponent.cpp index f3818f0cc2..49f8b08a3a 100644 --- a/Kernel/FileSystem/SysFSComponent.cpp +++ b/Kernel/FileSystem/SysFSComponent.cpp @@ -31,7 +31,7 @@ mode_t SysFSComponent::permissions() const return S_IRUSR | S_IRGRP | S_IROTH; } -ErrorOr<void> SysFSDirectory::traverse_as_directory(unsigned fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const +ErrorOr<void> SysFSDirectory::traverse_as_directory(FileSystemID fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const { MutexLocker locker(SysFSComponentRegistry::the().get_lock()); VERIFY(m_parent_directory); diff --git a/Kernel/FileSystem/SysFSComponent.h b/Kernel/FileSystem/SysFSComponent.h index d5b52e983e..4209802566 100644 --- a/Kernel/FileSystem/SysFSComponent.h +++ b/Kernel/FileSystem/SysFSComponent.h @@ -27,7 +27,7 @@ class SysFSComponent : public RefCounted<SysFSComponent> { public: virtual StringView name() const { return m_name->view(); } virtual ErrorOr<size_t> read_bytes(off_t, size_t, UserOrKernelBuffer&, OpenFileDescription*) const { return Error::from_errno(ENOTIMPL); } - virtual ErrorOr<void> traverse_as_directory(unsigned, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)>) const { VERIFY_NOT_REACHED(); } + virtual ErrorOr<void> traverse_as_directory(FileSystemID, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)>) const { VERIFY_NOT_REACHED(); } virtual RefPtr<SysFSComponent> lookup(StringView) { VERIFY_NOT_REACHED(); }; virtual mode_t permissions() const; virtual ErrorOr<void> truncate(u64) { return EPERM; } @@ -51,7 +51,7 @@ private: class SysFSDirectory : public SysFSComponent { public: - virtual ErrorOr<void> traverse_as_directory(unsigned, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)>) const override; + virtual ErrorOr<void> traverse_as_directory(FileSystemID, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)>) const override; virtual RefPtr<SysFSComponent> lookup(StringView name) override; virtual ErrorOr<NonnullRefPtr<SysFSInode>> to_inode(SysFS const& sysfs_instance) const override final; diff --git a/Kernel/GlobalProcessExposed.cpp b/Kernel/GlobalProcessExposed.cpp index 3efb3d3a7c..2bed0a83ae 100644 --- a/Kernel/GlobalProcessExposed.cpp +++ b/Kernel/GlobalProcessExposed.cpp @@ -936,7 +936,7 @@ UNMAP_AFTER_INIT NonnullRefPtr<ProcFSRootDirectory> ProcFSRootDirectory::must_cr return directory; } -ErrorOr<void> ProcFSRootDirectory::traverse_as_directory(unsigned fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const +ErrorOr<void> ProcFSRootDirectory::traverse_as_directory(FileSystemID fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const { MutexLocker locker(ProcFSComponentRegistry::the().get_lock()); TRY(callback({ ".", { fsid, component_index() }, 0 })); diff --git a/Kernel/Process.h b/Kernel/Process.h index bc9ff41679..444dc4d49b 100644 --- a/Kernel/Process.h +++ b/Kernel/Process.h @@ -567,10 +567,10 @@ public: ErrorOr<void> procfs_get_current_work_directory_link(KBufferBuilder& builder) const; mode_t binary_link_required_mode() const; ErrorOr<size_t> procfs_get_thread_stack(ThreadID thread_id, KBufferBuilder& builder) const; - ErrorOr<void> traverse_stacks_directory(unsigned fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const; + ErrorOr<void> traverse_stacks_directory(FileSystemID, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const; ErrorOr<NonnullRefPtr<Inode>> lookup_stacks_directory(const ProcFS&, StringView name) const; ErrorOr<size_t> procfs_get_file_description_link(unsigned fd, KBufferBuilder& builder) const; - ErrorOr<void> traverse_file_descriptions_directory(unsigned fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const; + ErrorOr<void> traverse_file_descriptions_directory(FileSystemID, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const; ErrorOr<NonnullRefPtr<Inode>> lookup_file_descriptions_directory(const ProcFS&, StringView name) const; private: @@ -723,7 +723,7 @@ public: virtual InodeIndex component_index() const override; virtual ErrorOr<NonnullRefPtr<Inode>> to_inode(const ProcFS& procfs_instance) const override; - virtual ErrorOr<void> traverse_as_directory(unsigned, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)>) const override; + virtual ErrorOr<void> traverse_as_directory(FileSystemID, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)>) const override; virtual mode_t required_mode() const override { return 0555; } virtual UserID owner_user() const override; diff --git a/Kernel/ProcessExposed.cpp b/Kernel/ProcessExposed.cpp index f4aa24d627..4b4d14100d 100644 --- a/Kernel/ProcessExposed.cpp +++ b/Kernel/ProcessExposed.cpp @@ -232,7 +232,7 @@ ErrorOr<NonnullRefPtr<ProcFSExposedComponent>> ProcFSExposedDirectory::lookup(St return ENOENT; } -ErrorOr<void> ProcFSExposedDirectory::traverse_as_directory(unsigned fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const +ErrorOr<void> ProcFSExposedDirectory::traverse_as_directory(FileSystemID fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const { MutexLocker locker(ProcFSComponentRegistry::the().get_lock()); auto parent_directory = m_parent_directory.strong_ref(); diff --git a/Kernel/ProcessExposed.h b/Kernel/ProcessExposed.h index fc63ecb66e..f3b299622c 100644 --- a/Kernel/ProcessExposed.h +++ b/Kernel/ProcessExposed.h @@ -67,7 +67,7 @@ class ProcFSExposedComponent : public RefCounted<ProcFSExposedComponent> { public: StringView name() const { return m_name->view(); } virtual ErrorOr<size_t> read_bytes(off_t, size_t, UserOrKernelBuffer&, OpenFileDescription*) const { VERIFY_NOT_REACHED(); } - virtual ErrorOr<void> traverse_as_directory(unsigned, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)>) const { VERIFY_NOT_REACHED(); } + virtual ErrorOr<void> traverse_as_directory(FileSystemID, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)>) const { VERIFY_NOT_REACHED(); } virtual ErrorOr<NonnullRefPtr<ProcFSExposedComponent>> lookup(StringView) { VERIFY_NOT_REACHED(); }; virtual ErrorOr<size_t> write_bytes(off_t, size_t, const UserOrKernelBuffer&, OpenFileDescription*) { return EROFS; } virtual ErrorOr<void> truncate(u64) { return EPERM; } @@ -105,7 +105,7 @@ class ProcFSExposedDirectory friend class ProcFSComponentRegistry; public: - virtual ErrorOr<void> traverse_as_directory(unsigned, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)>) const override; + virtual ErrorOr<void> traverse_as_directory(FileSystemID, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)>) const override; virtual ErrorOr<NonnullRefPtr<ProcFSExposedComponent>> lookup(StringView name) override; void add_component(const ProcFSExposedComponent&); @@ -147,7 +147,7 @@ public: virtual ~ProcFSRootDirectory(); private: - virtual ErrorOr<void> traverse_as_directory(unsigned, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)>) const override; + virtual ErrorOr<void> traverse_as_directory(FileSystemID, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)>) const override; ProcFSRootDirectory(); }; diff --git a/Kernel/ProcessProcFSTraits.cpp b/Kernel/ProcessProcFSTraits.cpp index 320bd8746d..0bdbf1fdf1 100644 --- a/Kernel/ProcessProcFSTraits.cpp +++ b/Kernel/ProcessProcFSTraits.cpp @@ -45,7 +45,7 @@ ErrorOr<NonnullRefPtr<Inode>> Process::ProcessProcFSTraits::to_inode(const ProcF return TRY(ProcFSProcessDirectoryInode::try_create(procfs_instance, process->pid())); } -ErrorOr<void> Process::ProcessProcFSTraits::traverse_as_directory(unsigned fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const +ErrorOr<void> Process::ProcessProcFSTraits::traverse_as_directory(FileSystemID fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const { auto process = m_process.strong_ref(); if (!process) diff --git a/Kernel/ProcessSpecificExposed.cpp b/Kernel/ProcessSpecificExposed.cpp index 58823770d2..175a4c2490 100644 --- a/Kernel/ProcessSpecificExposed.cpp +++ b/Kernel/ProcessSpecificExposed.cpp @@ -41,7 +41,7 @@ ErrorOr<size_t> Process::procfs_get_thread_stack(ThreadID thread_id, KBufferBuil return 0; } -ErrorOr<void> Process::traverse_stacks_directory(unsigned fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const +ErrorOr<void> Process::traverse_stacks_directory(FileSystemID fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const { TRY(callback({ ".", { fsid, SegmentedProcFSIndex::build_segmented_index_for_main_property(pid(), SegmentedProcFSIndex::ProcessSubDirectory::Stacks, SegmentedProcFSIndex::MainProcessProperty::Reserved) }, 0 })); TRY(callback({ "..", { fsid, m_procfs_traits->component_index() }, 0 })); @@ -89,7 +89,7 @@ ErrorOr<size_t> Process::procfs_get_file_description_link(unsigned fd, KBufferBu return data->length(); } -ErrorOr<void> Process::traverse_file_descriptions_directory(unsigned fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const +ErrorOr<void> Process::traverse_file_descriptions_directory(FileSystemID fsid, Function<ErrorOr<void>(FileSystem::DirectoryEntryView const&)> callback) const { TRY(callback({ ".", { fsid, m_procfs_traits->component_index() }, 0 })); TRY(callback({ "..", { fsid, m_procfs_traits->component_index() }, 0 })); @@ -205,7 +205,7 @@ ErrorOr<void> Process::procfs_get_fds_stats(KBufferBuilder& builder) const Inode* inode = description->inode(); if (inode != nullptr) { auto inode_object = description_object.add_object("inode"); - inode_object.add("fsid", inode->fsid()); + inode_object.add("fsid", inode->fsid().value()); inode_object.add("index", inode->index().value()); inode_object.finish(); } diff --git a/Kernel/Syscalls/statvfs.cpp b/Kernel/Syscalls/statvfs.cpp index 3d8c8323fe..314f0afd94 100644 --- a/Kernel/Syscalls/statvfs.cpp +++ b/Kernel/Syscalls/statvfs.cpp @@ -26,7 +26,7 @@ ErrorOr<FlatPtr> Process::do_statvfs(FileSystem const& fs, Custody const* custod kernelbuf.f_ffree = fs.free_inode_count(); kernelbuf.f_favail = fs.free_inode_count(); // FIXME: same as f_bavail - kernelbuf.f_fsid = fs.fsid(); + kernelbuf.f_fsid = fs.fsid().value(); kernelbuf.f_namemax = 255; |