mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 17:07:34 +00:00
Kernel: Rename FS => FileSystem
This matches our common naming style better.
This commit is contained in:
parent
dd65f52331
commit
d53d9d3677
33 changed files with 108 additions and 108 deletions
|
@ -86,7 +86,7 @@ KResultOr<size_t> DevFSInode::read_bytes(off_t, size_t, UserOrKernelBuffer&, Fil
|
|||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
||||
KResult DevFSInode::traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)>) const
|
||||
KResult DevFSInode::traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const
|
||||
{
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
@ -201,7 +201,7 @@ InodeMetadata DevFSDirectoryInode::metadata() const
|
|||
metadata.mtime = mepoch;
|
||||
return metadata;
|
||||
}
|
||||
KResult DevFSDirectoryInode::traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)>) const
|
||||
KResult DevFSDirectoryInode::traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const
|
||||
{
|
||||
Locker locker(m_lock);
|
||||
return EINVAL;
|
||||
|
@ -222,7 +222,7 @@ DevFSRootDirectoryInode::DevFSRootDirectoryInode(DevFS& fs)
|
|||
, m_parent_fs(fs)
|
||||
{
|
||||
}
|
||||
KResult DevFSRootDirectoryInode::traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)> callback) const
|
||||
KResult DevFSRootDirectoryInode::traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)> callback) const
|
||||
{
|
||||
Locker locker(m_parent_fs.m_lock);
|
||||
callback({ ".", identifier(), 0 });
|
||||
|
@ -392,7 +392,7 @@ DevFSPtsDirectoryInode::DevFSPtsDirectoryInode(DevFS& fs)
|
|||
: DevFSDirectoryInode(fs)
|
||||
{
|
||||
}
|
||||
KResult DevFSPtsDirectoryInode::traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)> callback) const
|
||||
KResult DevFSPtsDirectoryInode::traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)> callback) const
|
||||
{
|
||||
Locker locker(m_lock);
|
||||
callback({ ".", identifier(), 0 });
|
||||
|
|
|
@ -21,7 +21,7 @@ class DevFSRootDirectoryInode;
|
|||
class DevFSDevicesDirectoryInode;
|
||||
class DevFSPtsDirectoryInode;
|
||||
class Device;
|
||||
class DevFS final : public FS {
|
||||
class DevFS final : public FileSystem {
|
||||
friend class DevFSInode;
|
||||
friend class DevFSRootDirectoryInode;
|
||||
|
||||
|
@ -58,7 +58,7 @@ public:
|
|||
protected:
|
||||
DevFSInode(DevFS&);
|
||||
virtual KResultOr<size_t> read_bytes(off_t, size_t, UserOrKernelBuffer& buffer, FileDescription*) const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)>) const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
virtual RefPtr<Inode> lookup(StringView name) override;
|
||||
virtual void flush_metadata() override;
|
||||
virtual KResultOr<size_t> write_bytes(off_t, size_t, const UserOrKernelBuffer& buffer, FileDescription*) override;
|
||||
|
@ -125,7 +125,7 @@ protected:
|
|||
DevFSDirectoryInode(DevFS&);
|
||||
// ^Inode
|
||||
virtual InodeMetadata metadata() const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)>) const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
virtual RefPtr<Inode> lookup(StringView name) override;
|
||||
virtual KResultOr<size_t> directory_entry_count() const override;
|
||||
|
||||
|
@ -142,7 +142,7 @@ public:
|
|||
|
||||
private:
|
||||
explicit DevFSPtsDirectoryInode(DevFS&);
|
||||
virtual KResult traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)>) const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
virtual RefPtr<Inode> lookup(StringView name) override;
|
||||
virtual InodeMetadata metadata() const override;
|
||||
virtual KResultOr<size_t> directory_entry_count() const override;
|
||||
|
@ -158,7 +158,7 @@ public:
|
|||
private:
|
||||
explicit DevFSRootDirectoryInode(DevFS&);
|
||||
virtual KResultOr<NonnullRefPtr<Inode>> create_child(const String& name, mode_t, dev_t, uid_t, gid_t) override;
|
||||
virtual KResult traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)>) const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
virtual RefPtr<Inode> lookup(StringView name) override;
|
||||
virtual InodeMetadata metadata() const override;
|
||||
virtual KResultOr<size_t> directory_entry_count() const override;
|
||||
|
|
|
@ -120,7 +120,7 @@ InodeMetadata DevPtsFSInode::metadata() const
|
|||
return m_metadata;
|
||||
}
|
||||
|
||||
KResult DevPtsFSInode::traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)> callback) const
|
||||
KResult DevPtsFSInode::traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)> callback) const
|
||||
{
|
||||
if (identifier().index() > 1)
|
||||
return ENOTDIR;
|
||||
|
|
|
@ -15,7 +15,7 @@ namespace Kernel {
|
|||
class SlavePTY;
|
||||
class DevPtsFSInode;
|
||||
|
||||
class DevPtsFS final : public FS {
|
||||
class DevPtsFS final : public FileSystem {
|
||||
friend class DevPtsFSInode;
|
||||
|
||||
public:
|
||||
|
@ -49,7 +49,7 @@ private:
|
|||
// ^Inode
|
||||
virtual KResultOr<size_t> read_bytes(off_t, size_t, UserOrKernelBuffer& buffer, FileDescription*) const override;
|
||||
virtual InodeMetadata metadata() const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)>) const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
virtual RefPtr<Inode> lookup(StringView name) override;
|
||||
virtual void flush_metadata() override;
|
||||
virtual KResultOr<size_t> write_bytes(off_t, size_t, const UserOrKernelBuffer& buffer, FileDescription*) override;
|
||||
|
|
|
@ -1068,7 +1068,7 @@ Ext2FS::FeaturesReadOnly Ext2FS::get_features_readonly() const
|
|||
return Ext2FS::FeaturesReadOnly::None;
|
||||
}
|
||||
|
||||
KResult Ext2FSInode::traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)> callback) const
|
||||
KResult Ext2FSInode::traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)> callback) const
|
||||
{
|
||||
Locker locker(m_lock);
|
||||
VERIFY(is_directory());
|
||||
|
|
|
@ -40,7 +40,7 @@ private:
|
|||
// ^Inode
|
||||
virtual KResultOr<size_t> read_bytes(off_t, size_t, UserOrKernelBuffer& buffer, FileDescription*) const override;
|
||||
virtual InodeMetadata metadata() const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)>) const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
virtual RefPtr<Inode> lookup(StringView name) override;
|
||||
virtual void flush_metadata() override;
|
||||
virtual KResultOr<size_t> write_bytes(off_t, size_t, const UserOrKernelBuffer& data, FileDescription*) override;
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
namespace Kernel {
|
||||
|
||||
class FileBackedFS : public FS {
|
||||
class FileBackedFS : public FileSystem {
|
||||
public:
|
||||
virtual ~FileBackedFS() override;
|
||||
|
||||
|
|
|
@ -19,57 +19,57 @@
|
|||
namespace Kernel {
|
||||
|
||||
static u32 s_lastFileSystemID;
|
||||
static AK::Singleton<HashMap<u32, FS*>> s_fs_map;
|
||||
static AK::Singleton<HashMap<u32, FileSystem*>> s_file_system_map;
|
||||
|
||||
static HashMap<u32, FS*>& all_fses()
|
||||
static HashMap<u32, FileSystem*>& all_file_systems()
|
||||
{
|
||||
return *s_fs_map;
|
||||
return *s_file_system_map;
|
||||
}
|
||||
|
||||
FS::FS()
|
||||
FileSystem::FileSystem()
|
||||
: m_fsid(++s_lastFileSystemID)
|
||||
{
|
||||
all_fses().set(m_fsid, this);
|
||||
s_file_system_map->set(m_fsid, this);
|
||||
}
|
||||
|
||||
FS::~FS()
|
||||
FileSystem::~FileSystem()
|
||||
{
|
||||
all_fses().remove(m_fsid);
|
||||
s_file_system_map->remove(m_fsid);
|
||||
}
|
||||
|
||||
FS* FS::from_fsid(u32 id)
|
||||
FileSystem* FileSystem::from_fsid(u32 id)
|
||||
{
|
||||
auto it = all_fses().find(id);
|
||||
if (it != all_fses().end())
|
||||
auto it = all_file_systems().find(id);
|
||||
if (it != all_file_systems().end())
|
||||
return (*it).value;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
FS::DirectoryEntryView::DirectoryEntryView(const StringView& n, InodeIdentifier i, u8 ft)
|
||||
FileSystem::DirectoryEntryView::DirectoryEntryView(const StringView& n, InodeIdentifier i, u8 ft)
|
||||
: name(n)
|
||||
, inode(i)
|
||||
, file_type(ft)
|
||||
{
|
||||
}
|
||||
|
||||
void FS::sync()
|
||||
void FileSystem::sync()
|
||||
{
|
||||
Inode::sync();
|
||||
|
||||
NonnullRefPtrVector<FS, 32> fses;
|
||||
NonnullRefPtrVector<FileSystem, 32> file_systems;
|
||||
{
|
||||
InterruptDisabler disabler;
|
||||
for (auto& it : all_fses())
|
||||
fses.append(*it.value);
|
||||
for (auto& it : all_file_systems())
|
||||
file_systems.append(*it.value);
|
||||
}
|
||||
|
||||
for (auto& fs : fses)
|
||||
for (auto& fs : file_systems)
|
||||
fs.flush_writes();
|
||||
}
|
||||
|
||||
void FS::lock_all()
|
||||
void FileSystem::lock_all()
|
||||
{
|
||||
for (auto& it : all_fses()) {
|
||||
for (auto& it : all_file_systems()) {
|
||||
it.value->m_lock.lock();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
|
||||
* Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
@ -25,14 +25,14 @@ class FileDescription;
|
|||
class LocalSocket;
|
||||
class VMObject;
|
||||
|
||||
class FS : public RefCounted<FS> {
|
||||
class FileSystem : public RefCounted<FileSystem> {
|
||||
friend class Inode;
|
||||
|
||||
public:
|
||||
virtual ~FS();
|
||||
virtual ~FileSystem();
|
||||
|
||||
unsigned fsid() const { return m_fsid; }
|
||||
static FS* from_fsid(u32);
|
||||
static FileSystem* from_fsid(u32);
|
||||
static void sync();
|
||||
static void lock_all();
|
||||
|
||||
|
@ -69,7 +69,7 @@ public:
|
|||
virtual u8 internal_file_type_to_directory_entry_type(const DirectoryEntryView& entry) const { return entry.file_type; }
|
||||
|
||||
protected:
|
||||
FS();
|
||||
FileSystem();
|
||||
|
||||
void set_block_size(u64 size) { m_block_size = size; }
|
||||
void set_fragment_size(size_t size) { m_fragment_size = size; }
|
||||
|
@ -83,14 +83,14 @@ private:
|
|||
bool m_readonly { false };
|
||||
};
|
||||
|
||||
inline FS* InodeIdentifier::fs()
|
||||
inline FileSystem* InodeIdentifier::fs()
|
||||
{
|
||||
return FS::from_fsid(m_fsid);
|
||||
return FileSystem::from_fsid(m_fsid);
|
||||
}
|
||||
|
||||
inline const FS* InodeIdentifier::fs() const
|
||||
inline const FileSystem* InodeIdentifier::fs() const
|
||||
{
|
||||
return FS::from_fsid(m_fsid);
|
||||
return FileSystem::from_fsid(m_fsid);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -89,8 +89,8 @@ KResultOr<NonnullRefPtr<Custody>> Inode::resolve_as_link(Custody& base, RefPtr<C
|
|||
return VFS::the().resolve_path(path, base, out_parent, options, symlink_recursion_level);
|
||||
}
|
||||
|
||||
Inode::Inode(FS& fs, InodeIndex index)
|
||||
: m_fs(fs)
|
||||
Inode::Inode(FileSystem& fs, InodeIndex index)
|
||||
: m_file_system(fs)
|
||||
, m_index(index)
|
||||
{
|
||||
ScopedSpinLock all_inodes_lock(s_all_inodes_lock);
|
||||
|
|
|
@ -26,16 +26,16 @@ namespace Kernel {
|
|||
class Inode : public RefCounted<Inode>
|
||||
, public Weakable<Inode> {
|
||||
friend class VFS;
|
||||
friend class FS;
|
||||
friend class FileSystem;
|
||||
|
||||
public:
|
||||
virtual ~Inode();
|
||||
|
||||
virtual void one_ref_left() { }
|
||||
|
||||
FS& fs() { return m_fs; }
|
||||
const FS& fs() const { return m_fs; }
|
||||
unsigned fsid() const { return m_fs.fsid(); }
|
||||
FileSystem& fs() { return m_file_system; }
|
||||
FileSystem const& fs() const { return m_file_system; }
|
||||
unsigned fsid() const { return m_file_system.fsid(); }
|
||||
InodeIndex index() const { return m_index; }
|
||||
|
||||
size_t size() const { return metadata().size; }
|
||||
|
@ -53,7 +53,7 @@ public:
|
|||
virtual void detach(FileDescription&) { }
|
||||
virtual void did_seek(FileDescription&, off_t) { }
|
||||
virtual KResultOr<size_t> read_bytes(off_t, size_t, UserOrKernelBuffer& buffer, FileDescription*) const = 0;
|
||||
virtual KResult traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)>) const = 0;
|
||||
virtual KResult traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const = 0;
|
||||
virtual RefPtr<Inode> lookup(StringView name) = 0;
|
||||
virtual KResultOr<size_t> write_bytes(off_t, size_t, const UserOrKernelBuffer& data, FileDescription*) = 0;
|
||||
virtual KResultOr<NonnullRefPtr<Inode>> create_child(const String& name, mode_t, dev_t, uid_t, gid_t) = 0;
|
||||
|
@ -100,7 +100,7 @@ public:
|
|||
NonnullRefPtr<FIFO> fifo();
|
||||
|
||||
protected:
|
||||
Inode(FS& fs, InodeIndex);
|
||||
Inode(FileSystem&, InodeIndex);
|
||||
void set_metadata_dirty(bool);
|
||||
KResult prepare_to_write_data();
|
||||
|
||||
|
@ -112,7 +112,7 @@ protected:
|
|||
mutable Lock m_lock { "Inode" };
|
||||
|
||||
private:
|
||||
FS& m_fs;
|
||||
FileSystem& m_file_system;
|
||||
InodeIndex m_index { 0 };
|
||||
WeakPtr<SharedInodeVMObject> m_shared_vmobject;
|
||||
RefPtr<LocalSocket> m_socket;
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
namespace Kernel {
|
||||
|
||||
class FS;
|
||||
class FileSystem;
|
||||
struct InodeMetadata;
|
||||
|
||||
TYPEDEF_DISTINCT_ORDERED_ID(u64, InodeIndex);
|
||||
|
@ -32,8 +32,8 @@ public:
|
|||
u32 fsid() const { return m_fsid; }
|
||||
InodeIndex index() const { return m_index; }
|
||||
|
||||
FS* fs();
|
||||
const FS* fs() const;
|
||||
FileSystem* fs();
|
||||
const FileSystem* fs() const;
|
||||
|
||||
bool operator==(const InodeIdentifier& other) const
|
||||
{
|
||||
|
|
|
@ -865,7 +865,7 @@ KResultOr<size_t> Plan9FSInode::directory_entry_count() const
|
|||
return count;
|
||||
}
|
||||
|
||||
KResult Plan9FSInode::traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)> callback) const
|
||||
KResult Plan9FSInode::traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)> callback) const
|
||||
{
|
||||
KResult result = KSuccess;
|
||||
|
||||
|
|
|
@ -158,7 +158,7 @@ public:
|
|||
virtual void flush_metadata() override;
|
||||
virtual KResultOr<size_t> read_bytes(off_t, size_t, UserOrKernelBuffer& buffer, FileDescription*) const override;
|
||||
virtual KResultOr<size_t> write_bytes(off_t, size_t, const UserOrKernelBuffer& data, FileDescription*) override;
|
||||
virtual KResult traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)>) const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
virtual RefPtr<Inode> lookup(StringView name) override;
|
||||
virtual KResultOr<NonnullRefPtr<Inode>> create_child(const String& name, mode_t, dev_t, uid_t, gid_t) override;
|
||||
virtual KResult add_child(Inode&, const StringView& name, mode_t) override;
|
||||
|
|
|
@ -129,7 +129,7 @@ StringView ProcFSInode::name() const
|
|||
return m_associated_component->name();
|
||||
}
|
||||
|
||||
KResult ProcFSInode::traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)>) const
|
||||
KResult ProcFSInode::traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const
|
||||
{
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
@ -222,7 +222,7 @@ InodeMetadata ProcFSDirectoryInode::metadata() const
|
|||
metadata.mtime = m_associated_component->modified_time();
|
||||
return metadata;
|
||||
}
|
||||
KResult ProcFSDirectoryInode::traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)> callback) const
|
||||
KResult ProcFSDirectoryInode::traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)> callback) const
|
||||
{
|
||||
Locker locker(m_parent_fs.m_lock);
|
||||
return m_associated_component->traverse_as_directory(m_parent_fs.fsid(), move(callback));
|
||||
|
|
|
@ -21,7 +21,7 @@ class Process;
|
|||
class ProcFSInode;
|
||||
class ProcFSDirectoryInode;
|
||||
|
||||
class ProcFS final : public FS {
|
||||
class ProcFS final : public FileSystem {
|
||||
friend class ProcFSInode;
|
||||
friend class ProcFSDirectoryInode;
|
||||
|
||||
|
@ -54,7 +54,7 @@ protected:
|
|||
// ^Inode
|
||||
virtual KResult attach(FileDescription& description) override;
|
||||
virtual KResultOr<size_t> read_bytes(off_t, size_t, UserOrKernelBuffer& buffer, FileDescription*) const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)>) const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
virtual RefPtr<Inode> lookup(StringView name) override;
|
||||
virtual void flush_metadata() override;
|
||||
virtual InodeMetadata metadata() const override;
|
||||
|
@ -93,7 +93,7 @@ protected:
|
|||
ProcFSDirectoryInode(const ProcFS&, const ProcFSExposedComponent&);
|
||||
// ^Inode
|
||||
virtual InodeMetadata metadata() const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)>) const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
virtual RefPtr<Inode> lookup(StringView name) override;
|
||||
virtual KResultOr<size_t> directory_entry_count() const override;
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ NonnullRefPtr<SysFSRootFolder> SysFSRootFolder::create()
|
|||
return adopt_ref(*new (nothrow) SysFSRootFolder);
|
||||
}
|
||||
|
||||
KResult SysFSRootFolder::traverse_as_directory(unsigned fsid, Function<bool(const FS::DirectoryEntryView&)> callback) const
|
||||
KResult SysFSRootFolder::traverse_as_directory(unsigned fsid, Function<bool(FileSystem::DirectoryEntryView const&)> callback) const
|
||||
{
|
||||
Locker locker(SystemRegistrar::the().m_lock);
|
||||
callback({ ".", { fsid, component_index() }, 0 });
|
||||
|
@ -101,7 +101,7 @@ KResultOr<size_t> SysFSInode::read_bytes(off_t offset, size_t count, UserOrKerne
|
|||
return m_associated_component->read_bytes(offset, count, buffer, fd);
|
||||
}
|
||||
|
||||
KResult SysFSInode::traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)>) const
|
||||
KResult SysFSInode::traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const
|
||||
{
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
@ -194,7 +194,7 @@ InodeMetadata SysFSDirectoryInode::metadata() const
|
|||
metadata.mtime = mepoch;
|
||||
return metadata;
|
||||
}
|
||||
KResult SysFSDirectoryInode::traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)> callback) const
|
||||
KResult SysFSDirectoryInode::traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)> callback) const
|
||||
{
|
||||
Locker locker(m_parent_fs.m_lock);
|
||||
return m_associated_component->traverse_as_directory(m_parent_fs.fsid(), move(callback));
|
||||
|
|
|
@ -26,7 +26,7 @@ class SysFSRootFolder final : public SystemExposedFolder {
|
|||
|
||||
public:
|
||||
static NonnullRefPtr<SysFSRootFolder> create();
|
||||
virtual KResult traverse_as_directory(unsigned, Function<bool(const FS::DirectoryEntryView&)>) const override;
|
||||
virtual KResult traverse_as_directory(unsigned, Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
|
||||
private:
|
||||
SysFSRootFolder();
|
||||
|
@ -53,7 +53,7 @@ private:
|
|||
NonnullRefPtr<SysFSRootFolder> m_root_folder;
|
||||
};
|
||||
|
||||
class SysFS final : public FS {
|
||||
class SysFS final : public FileSystem {
|
||||
friend class SysFSInode;
|
||||
friend class SysFSDirectoryInode;
|
||||
|
||||
|
@ -83,7 +83,7 @@ public:
|
|||
protected:
|
||||
SysFSInode(const SysFS&, const SystemExposedComponent&);
|
||||
virtual KResultOr<size_t> read_bytes(off_t, size_t, UserOrKernelBuffer& buffer, FileDescription*) const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)>) const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
virtual RefPtr<Inode> lookup(StringView name) override;
|
||||
virtual void flush_metadata() override;
|
||||
virtual InodeMetadata metadata() const override;
|
||||
|
@ -111,7 +111,7 @@ protected:
|
|||
SysFSDirectoryInode(const SysFS&, const SystemExposedComponent&);
|
||||
// ^Inode
|
||||
virtual InodeMetadata metadata() const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)>) const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
virtual RefPtr<Inode> lookup(StringView name) override;
|
||||
virtual KResultOr<size_t> directory_entry_count() const override;
|
||||
|
||||
|
|
|
@ -110,7 +110,7 @@ InodeMetadata TmpFSInode::metadata() const
|
|||
return m_metadata;
|
||||
}
|
||||
|
||||
KResult TmpFSInode::traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)> callback) const
|
||||
KResult TmpFSInode::traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)> callback) const
|
||||
{
|
||||
Locker locker(m_lock, Lock::Mode::Shared);
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ namespace Kernel {
|
|||
|
||||
class TmpFSInode;
|
||||
|
||||
class TmpFS final : public FS {
|
||||
class TmpFS final : public FileSystem {
|
||||
friend class TmpFSInode;
|
||||
|
||||
public:
|
||||
|
@ -56,7 +56,7 @@ public:
|
|||
// ^Inode
|
||||
virtual KResultOr<size_t> read_bytes(off_t, size_t, UserOrKernelBuffer& buffer, FileDescription*) const override;
|
||||
virtual InodeMetadata metadata() const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(const FS::DirectoryEntryView&)>) const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
virtual RefPtr<Inode> lookup(StringView name) override;
|
||||
virtual void flush_metadata() override;
|
||||
virtual KResultOr<size_t> write_bytes(off_t, size_t, const UserOrKernelBuffer& buffer, FileDescription*) override;
|
||||
|
|
|
@ -49,18 +49,18 @@ InodeIdentifier VFS::root_inode_id() const
|
|||
return m_root_inode->identifier();
|
||||
}
|
||||
|
||||
KResult VFS::mount(FS& file_system, Custody& mount_point, int flags)
|
||||
KResult VFS::mount(FileSystem& fs, Custody& mount_point, int flags)
|
||||
{
|
||||
Locker locker(m_lock);
|
||||
|
||||
auto& inode = mount_point.inode();
|
||||
dbgln("VFS: Mounting {} at {} (inode: {}) with flags {}",
|
||||
file_system.class_name(),
|
||||
fs.class_name(),
|
||||
mount_point.try_create_absolute_path(),
|
||||
inode.identifier(),
|
||||
flags);
|
||||
// FIXME: check that this is not already a mount point
|
||||
Mount mount { file_system, &mount_point, flags };
|
||||
Mount mount { fs, &mount_point, flags };
|
||||
m_mounts.append(move(mount));
|
||||
return KSuccess;
|
||||
}
|
||||
|
@ -112,23 +112,23 @@ KResult VFS::unmount(Inode& guest_inode)
|
|||
return ENODEV;
|
||||
}
|
||||
|
||||
bool VFS::mount_root(FS& file_system)
|
||||
bool VFS::mount_root(FileSystem& fs)
|
||||
{
|
||||
if (m_root_inode) {
|
||||
dmesgln("VFS: mount_root can't mount another root");
|
||||
return false;
|
||||
}
|
||||
|
||||
Mount mount { file_system, nullptr, root_mount_flags };
|
||||
Mount mount { fs, nullptr, root_mount_flags };
|
||||
|
||||
auto root_inode = file_system.root_inode();
|
||||
auto root_inode = fs.root_inode();
|
||||
if (!root_inode->is_directory()) {
|
||||
dmesgln("VFS: root inode ({}) for / is not a directory :(", root_inode->identifier());
|
||||
return false;
|
||||
}
|
||||
|
||||
m_root_inode = move(root_inode);
|
||||
dmesgln("VFS: mounted root from {} ({})", file_system.class_name(), static_cast<FileBackedFS&>(file_system).file_description().absolute_path());
|
||||
dmesgln("VFS: mounted root from {} ({})", fs.class_name(), static_cast<FileBackedFS&>(fs).file_description().absolute_path());
|
||||
|
||||
m_mounts.append(move(mount));
|
||||
|
||||
|
@ -180,7 +180,7 @@ bool VFS::is_vfs_root(InodeIdentifier inode) const
|
|||
return inode == root_inode_id();
|
||||
}
|
||||
|
||||
KResult VFS::traverse_directory_inode(Inode& dir_inode, Function<bool(const FS::DirectoryEntryView&)> callback)
|
||||
KResult VFS::traverse_directory_inode(Inode& dir_inode, Function<bool(FileSystem::DirectoryEntryView const&)> callback)
|
||||
{
|
||||
return dir_inode.traverse_as_directory([&](auto& entry) {
|
||||
InodeIdentifier resolved_inode;
|
||||
|
@ -780,7 +780,7 @@ KResult VFS::rmdir(StringView path, Custody& base)
|
|||
return parent_inode.remove_child(KLexicalPath::basename(path));
|
||||
}
|
||||
|
||||
VFS::Mount::Mount(FS& guest_fs, Custody* host_custody, int flags)
|
||||
VFS::Mount::Mount(FileSystem& guest_fs, Custody* host_custody, int flags)
|
||||
: m_guest(guest_fs.root_inode())
|
||||
, m_guest_fs(guest_fs)
|
||||
, m_host_custody(host_custody)
|
||||
|
@ -826,7 +826,7 @@ void VFS::for_each_mount(Function<void(const Mount&)> callback) const
|
|||
|
||||
void VFS::sync()
|
||||
{
|
||||
FS::sync();
|
||||
FileSystem::sync();
|
||||
}
|
||||
|
||||
Custody& VFS::root_custody()
|
||||
|
|
|
@ -35,7 +35,7 @@ class VFS {
|
|||
public:
|
||||
class Mount {
|
||||
public:
|
||||
Mount(FS&, Custody* host_custody, int flags);
|
||||
Mount(FileSystem&, Custody* host_custody, int flags);
|
||||
Mount(Inode& source, Custody& host_custody, int flags);
|
||||
|
||||
const Inode* host() const;
|
||||
|
@ -44,7 +44,7 @@ public:
|
|||
const Inode& guest() const { return *m_guest; }
|
||||
Inode& guest() { return *m_guest; }
|
||||
|
||||
const FS& guest_fs() const { return *m_guest_fs; }
|
||||
FileSystem const& guest_fs() const { return *m_guest_fs; }
|
||||
|
||||
String absolute_path() const;
|
||||
|
||||
|
@ -53,7 +53,7 @@ public:
|
|||
|
||||
private:
|
||||
NonnullRefPtr<Inode> m_guest;
|
||||
NonnullRefPtr<FS> m_guest_fs;
|
||||
NonnullRefPtr<FileSystem> m_guest_fs;
|
||||
RefPtr<Custody> m_host_custody;
|
||||
int m_flags;
|
||||
};
|
||||
|
@ -64,8 +64,8 @@ public:
|
|||
VFS();
|
||||
~VFS();
|
||||
|
||||
bool mount_root(FS&);
|
||||
KResult mount(FS&, Custody& mount_point, int flags);
|
||||
bool mount_root(FileSystem&);
|
||||
KResult mount(FileSystem&, Custody& mount_point, int flags);
|
||||
KResult bind_mount(Custody& source, Custody& mount_point, int flags);
|
||||
KResult remount(Custody& mount_point, int new_flags);
|
||||
KResult unmount(Inode& guest_inode);
|
||||
|
@ -108,7 +108,7 @@ private:
|
|||
|
||||
bool is_vfs_root(InodeIdentifier) const;
|
||||
|
||||
KResult traverse_directory_inode(Inode&, Function<bool(const FS::DirectoryEntryView&)>);
|
||||
KResult traverse_directory_inode(Inode&, Function<bool(FileSystem::DirectoryEntryView const&)>);
|
||||
|
||||
Mount* find_mount_for_host(Inode&);
|
||||
Mount* find_mount_for_host(InodeIdentifier);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue