mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-22 10:59:51 +03:00
Kernel: Make Inode::flush_metadata() return a KResult
Even if this goes nowhere yet, we have to start building an error propagation path somewhere.
This commit is contained in:
parent
6337d742bb
commit
6f69d5204f
Notes:
sideshowbarker
2024-07-18 02:05:05 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/6f69d5204fe
@ -145,8 +145,9 @@ KResultOr<NonnullRefPtr<Inode>> DevPtsFSInode::lookup(StringView name)
|
||||
});
|
||||
}
|
||||
|
||||
void DevPtsFSInode::flush_metadata()
|
||||
KResult DevPtsFSInode::flush_metadata()
|
||||
{
|
||||
return KSuccess;
|
||||
}
|
||||
|
||||
KResult DevPtsFSInode::add_child(Inode&, const StringView&, mode_t)
|
||||
|
@ -51,7 +51,7 @@ private:
|
||||
virtual InodeMetadata metadata() const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
virtual KResultOr<NonnullRefPtr<Inode>> lookup(StringView name) override;
|
||||
virtual void flush_metadata() override;
|
||||
virtual KResult flush_metadata() override;
|
||||
virtual KResultOr<size_t> write_bytes(off_t, size_t, const UserOrKernelBuffer& buffer, OpenFileDescription*) override;
|
||||
virtual KResultOr<NonnullRefPtr<Inode>> create_child(StringView name, mode_t, dev_t, UserID, GroupID) override;
|
||||
virtual KResult add_child(Inode&, const StringView& name, mode_t) override;
|
||||
|
@ -70,8 +70,9 @@ KResultOr<NonnullRefPtr<Inode>> DevTmpFSInode::lookup(StringView)
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
||||
void DevTmpFSInode::flush_metadata()
|
||||
KResult DevTmpFSInode::flush_metadata()
|
||||
{
|
||||
return KSuccess;
|
||||
}
|
||||
|
||||
KResultOr<size_t> DevTmpFSInode::write_bytes(off_t, size_t, const UserOrKernelBuffer&, OpenFileDescription*)
|
||||
|
@ -51,7 +51,7 @@ protected:
|
||||
virtual KResultOr<size_t> read_bytes(off_t, size_t, UserOrKernelBuffer& buffer, OpenFileDescription*) const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
virtual KResultOr<NonnullRefPtr<Inode>> lookup(StringView name) override;
|
||||
virtual void flush_metadata() override;
|
||||
virtual KResult flush_metadata() override;
|
||||
virtual InodeMetadata metadata() const override final;
|
||||
virtual KResultOr<size_t> write_bytes(off_t, size_t, const UserOrKernelBuffer& buffer, OpenFileDescription*) override;
|
||||
virtual KResultOr<NonnullRefPtr<Inode>> create_child(StringView name, mode_t, dev_t, UserID, GroupID) override;
|
||||
|
@ -773,7 +773,7 @@ InodeMetadata Ext2FSInode::metadata() const
|
||||
return metadata;
|
||||
}
|
||||
|
||||
void Ext2FSInode::flush_metadata()
|
||||
KResult Ext2FSInode::flush_metadata()
|
||||
{
|
||||
MutexLocker locker(m_inode_lock);
|
||||
dbgln_if(EXT2_DEBUG, "Ext2FSInode[{}]::flush_metadata(): Flushing inode", identifier());
|
||||
@ -786,6 +786,7 @@ void Ext2FSInode::flush_metadata()
|
||||
}
|
||||
}
|
||||
set_metadata_dirty(false);
|
||||
return KSuccess;
|
||||
}
|
||||
|
||||
KResultOr<NonnullRefPtr<Inode>> Ext2FS::get_inode(InodeIdentifier inode) const
|
||||
|
@ -42,7 +42,7 @@ private:
|
||||
virtual InodeMetadata metadata() const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
virtual KResultOr<NonnullRefPtr<Inode>> lookup(StringView name) override;
|
||||
virtual void flush_metadata() override;
|
||||
virtual KResult flush_metadata() override;
|
||||
virtual KResultOr<size_t> write_bytes(off_t, size_t, const UserOrKernelBuffer& data, OpenFileDescription*) override;
|
||||
virtual KResultOr<NonnullRefPtr<Inode>> create_child(StringView name, mode_t, dev_t, UserID, GroupID) override;
|
||||
virtual KResult add_child(Inode& child, const StringView& name, mode_t) override;
|
||||
|
@ -499,8 +499,9 @@ KResultOr<NonnullRefPtr<Inode>> ISO9660Inode::lookup(StringView name)
|
||||
return inode.release_nonnull();
|
||||
}
|
||||
|
||||
void ISO9660Inode::flush_metadata()
|
||||
KResult ISO9660Inode::flush_metadata()
|
||||
{
|
||||
return KSuccess;
|
||||
}
|
||||
|
||||
KResultOr<size_t> ISO9660Inode::write_bytes(off_t, size_t, const UserOrKernelBuffer&, OpenFileDescription*)
|
||||
|
@ -351,7 +351,7 @@ public:
|
||||
virtual InodeMetadata metadata() const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
virtual KResultOr<NonnullRefPtr<Inode>> lookup(StringView name) override;
|
||||
virtual void flush_metadata() override;
|
||||
virtual KResult flush_metadata() override;
|
||||
virtual KResultOr<size_t> write_bytes(off_t, size_t, const UserOrKernelBuffer& buffer, OpenFileDescription*) override;
|
||||
virtual KResultOr<NonnullRefPtr<Inode>> create_child(StringView name, mode_t, dev_t, UserID, GroupID) override;
|
||||
virtual KResult add_child(Inode&, const StringView& name, mode_t) override;
|
||||
|
@ -41,14 +41,14 @@ void Inode::sync_all()
|
||||
|
||||
for (auto& inode : inodes) {
|
||||
VERIFY(inode.is_metadata_dirty());
|
||||
inode.flush_metadata();
|
||||
(void)inode.flush_metadata();
|
||||
}
|
||||
}
|
||||
|
||||
void Inode::sync()
|
||||
{
|
||||
if (is_metadata_dirty())
|
||||
flush_metadata();
|
||||
(void)flush_metadata();
|
||||
fs().flush_writes();
|
||||
}
|
||||
|
||||
@ -103,7 +103,7 @@ void Inode::will_be_destroyed()
|
||||
{
|
||||
MutexLocker locker(m_inode_lock);
|
||||
if (m_metadata_dirty)
|
||||
flush_metadata();
|
||||
(void)flush_metadata();
|
||||
}
|
||||
|
||||
KResult Inode::set_atime(time_t)
|
||||
|
@ -81,7 +81,7 @@ public:
|
||||
virtual KResult increment_link_count();
|
||||
virtual KResult decrement_link_count();
|
||||
|
||||
virtual void flush_metadata() = 0;
|
||||
virtual KResult flush_metadata() = 0;
|
||||
|
||||
void will_be_destroyed();
|
||||
|
||||
|
@ -822,9 +822,10 @@ InodeMetadata Plan9FSInode::metadata() const
|
||||
return metadata;
|
||||
}
|
||||
|
||||
void Plan9FSInode::flush_metadata()
|
||||
KResult Plan9FSInode::flush_metadata()
|
||||
{
|
||||
// Do nothing.
|
||||
return KSuccess;
|
||||
}
|
||||
|
||||
KResult Plan9FSInode::traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)> callback) const
|
||||
|
@ -155,7 +155,7 @@ public:
|
||||
|
||||
// ^Inode
|
||||
virtual InodeMetadata metadata() const override;
|
||||
virtual void flush_metadata() override;
|
||||
virtual KResult flush_metadata() override;
|
||||
virtual KResultOr<size_t> read_bytes(off_t, size_t, UserOrKernelBuffer& buffer, OpenFileDescription*) const override;
|
||||
virtual KResultOr<size_t> write_bytes(off_t, size_t, const UserOrKernelBuffer& data, OpenFileDescription*) override;
|
||||
virtual KResult traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
|
@ -70,8 +70,9 @@ ProcFSInode::~ProcFSInode()
|
||||
{
|
||||
}
|
||||
|
||||
void ProcFSInode::flush_metadata()
|
||||
KResult ProcFSInode::flush_metadata()
|
||||
{
|
||||
return KSuccess;
|
||||
}
|
||||
|
||||
KResult ProcFSInode::add_child(Inode&, const StringView&, mode_t)
|
||||
|
@ -56,7 +56,7 @@ protected:
|
||||
// ^Inode
|
||||
virtual KResult attach(OpenFileDescription& description) = 0;
|
||||
virtual void did_seek(OpenFileDescription&, off_t) = 0;
|
||||
virtual void flush_metadata() override final;
|
||||
virtual KResult flush_metadata() override final;
|
||||
virtual KResultOr<NonnullRefPtr<Inode>> create_child(StringView name, mode_t, dev_t, UserID, GroupID) override final;
|
||||
virtual KResult add_child(Inode&, const StringView& name, mode_t) override final;
|
||||
virtual KResult remove_child(const StringView& name) override final;
|
||||
|
@ -148,8 +148,9 @@ InodeMetadata SysFSInode::metadata() const
|
||||
return metadata;
|
||||
}
|
||||
|
||||
void SysFSInode::flush_metadata()
|
||||
KResult SysFSInode::flush_metadata()
|
||||
{
|
||||
return KSuccess;
|
||||
}
|
||||
|
||||
KResultOr<size_t> SysFSInode::write_bytes(off_t offset, size_t count, UserOrKernelBuffer const& buffer, OpenFileDescription* fd)
|
||||
|
@ -137,7 +137,7 @@ protected:
|
||||
virtual KResultOr<size_t> read_bytes(off_t, size_t, UserOrKernelBuffer& buffer, OpenFileDescription*) const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
virtual KResultOr<NonnullRefPtr<Inode>> lookup(StringView name) override;
|
||||
virtual void flush_metadata() override;
|
||||
virtual KResult flush_metadata() override;
|
||||
virtual InodeMetadata metadata() const override;
|
||||
virtual KResultOr<size_t> write_bytes(off_t, size_t, UserOrKernelBuffer const&, OpenFileDescription*) override;
|
||||
virtual KResultOr<NonnullRefPtr<Inode>> create_child(StringView name, mode_t, dev_t, UserID, GroupID) override;
|
||||
|
@ -216,7 +216,7 @@ void TmpFSInode::notify_watchers()
|
||||
set_metadata_dirty(false);
|
||||
}
|
||||
|
||||
void TmpFSInode::flush_metadata()
|
||||
KResult TmpFSInode::flush_metadata()
|
||||
{
|
||||
// We don't really have any metadata that could become dirty.
|
||||
// The only reason we even call set_metadata_dirty() is
|
||||
@ -224,6 +224,7 @@ void TmpFSInode::flush_metadata()
|
||||
// switched to a different mechanism, we can stop ever marking
|
||||
// our metadata as dirty at all.
|
||||
set_metadata_dirty(false);
|
||||
return KSuccess;
|
||||
}
|
||||
|
||||
KResult TmpFSInode::chmod(mode_t mode)
|
||||
|
@ -56,7 +56,7 @@ public:
|
||||
virtual InodeMetadata metadata() const override;
|
||||
virtual KResult traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const override;
|
||||
virtual KResultOr<NonnullRefPtr<Inode>> lookup(StringView name) override;
|
||||
virtual void flush_metadata() override;
|
||||
virtual KResult flush_metadata() override;
|
||||
virtual KResultOr<size_t> write_bytes(off_t, size_t, const UserOrKernelBuffer& buffer, OpenFileDescription*) override;
|
||||
virtual KResultOr<NonnullRefPtr<Inode>> create_child(StringView name, mode_t, dev_t, UserID, GroupID) override;
|
||||
virtual KResult add_child(Inode&, const StringView& name, mode_t) override;
|
||||
|
Loading…
Reference in New Issue
Block a user