diff --git a/kernel/include/kernel/FS/TmpFS/Inode.h b/kernel/include/kernel/FS/TmpFS/Inode.h index 76d17c24..402ee28e 100644 --- a/kernel/include/kernel/FS/TmpFS/Inode.h +++ b/kernel/include/kernel/FS/TmpFS/Inode.h @@ -118,10 +118,9 @@ namespace Kernel static BAN::ErrorOr> create_new(TmpFileSystem&, mode_t, uid_t, gid_t, BAN::StringView target); ~TmpSymlinkInode(); - BAN::ErrorOr set_link_target(BAN::StringView); - protected: - virtual BAN::ErrorOr link_target_impl() override; + BAN::ErrorOr link_target_impl() override; + BAN::ErrorOr set_link_target_impl(BAN::StringView) override; virtual bool can_read_impl() const override { return false; } virtual bool can_write_impl() const override { return false; } diff --git a/kernel/kernel/FS/TmpFS/Inode.cpp b/kernel/kernel/FS/TmpFS/Inode.cpp index b52c0e2d..2ba940c6 100644 --- a/kernel/kernel/FS/TmpFS/Inode.cpp +++ b/kernel/kernel/FS/TmpFS/Inode.cpp @@ -295,7 +295,7 @@ namespace Kernel { } - BAN::ErrorOr TmpSymlinkInode::set_link_target(BAN::StringView new_target) + BAN::ErrorOr TmpSymlinkInode::set_link_target_impl(BAN::StringView new_target) { free_all_blocks(); m_inode_info.size = 0; @@ -507,6 +507,9 @@ namespace Kernel case Mode::IFREG: new_inode = TRY(TmpFileInode::create_new(m_fs, mode, uid, gid)); break; + case Mode::IFLNK: + new_inode = TRY(TmpSymlinkInode::create_new(m_fs, mode, uid, gid, ""_sv)); + break; case Mode::IFSOCK: new_inode = TRY(TmpSocketInode::create_new(m_fs, mode, uid, gid)); break;