1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 20:28:11 +00:00

Kernel: Enable early-returns from VFS::for_each_mount

This commit is contained in:
Ben Wiederhake 2021-10-29 23:28:25 +02:00 committed by Andreas Kling
parent 735da58d44
commit 88ca12f037
4 changed files with 19 additions and 15 deletions

View file

@ -724,11 +724,12 @@ KResult VirtualFileSystem::rmdir(StringView path, Custody& base)
return parent_inode.remove_child(KLexicalPath::basename(path));
}
void VirtualFileSystem::for_each_mount(Function<void(Mount const&)> callback) const
void VirtualFileSystem::for_each_mount(Function<IterationDecision(Mount const&)> callback) const
{
m_mounts.with_shared([&](auto& mounts) {
for (auto& mount : mounts) {
callback(mount);
if (callback(mount) == IterationDecision::Break)
break;
}
});
}

View file

@ -66,7 +66,7 @@ public:
KResult mknod(StringView path, mode_t, dev_t, Custody& base);
KResultOr<NonnullRefPtr<Custody>> open_directory(StringView path, Custody& base);
void for_each_mount(Function<void(const Mount&)>) const;
void for_each_mount(Function<IterationDecision(const Mount&)>) const;
InodeIdentifier root_inode_id() const;