Kernel: Fix TmpSymlinkInode target getting/setting
This commit is contained in:
@@ -118,10 +118,9 @@ namespace Kernel
|
||||
static BAN::ErrorOr<BAN::RefPtr<TmpSymlinkInode>> create_new(TmpFileSystem&, mode_t, uid_t, gid_t, BAN::StringView target);
|
||||
~TmpSymlinkInode();
|
||||
|
||||
BAN::ErrorOr<void> set_link_target(BAN::StringView);
|
||||
|
||||
protected:
|
||||
virtual BAN::ErrorOr<BAN::String> link_target_impl() override;
|
||||
BAN::ErrorOr<BAN::String> link_target_impl() override;
|
||||
BAN::ErrorOr<void> 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; }
|
||||
|
||||
@@ -295,7 +295,7 @@ namespace Kernel
|
||||
{
|
||||
}
|
||||
|
||||
BAN::ErrorOr<void> TmpSymlinkInode::set_link_target(BAN::StringView new_target)
|
||||
BAN::ErrorOr<void> 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;
|
||||
|
||||
Reference in New Issue
Block a user