Kernel: Add File::is_regular_file()

This makes it easy and expressive to check if a File is a regular file.
This commit is contained in:
Andreas Kling 2022-11-27 23:50:28 +01:00
parent c8ff2184bd
commit 4dd148f07c
3 changed files with 9 additions and 0 deletions

View file

@ -115,6 +115,8 @@ public:
virtual bool is_socket() const { return false; }
virtual bool is_inode_watcher() const { return false; }
virtual bool is_regular_file() const { return false; }
virtual FileBlockerSet& blocker_set() { return m_blocker_set; }
size_t attach_count() const { return m_attach_count; }

View file

@ -120,4 +120,9 @@ ErrorOr<void> InodeFile::chmod(Credentials const& credentials, OpenFileDescripti
return VirtualFileSystem::the().chmod(credentials, *description.custody(), mode);
}
bool InodeFile::is_regular_file() const
{
return inode().metadata().is_regular_file();
}
}

View file

@ -49,6 +49,8 @@ public:
virtual bool is_inode() const override { return true; }
private:
virtual bool is_regular_file() const override;
explicit InodeFile(NonnullLockRefPtr<Inode>&&);
NonnullLockRefPtr<Inode> m_inode;
};