1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-18 05:55:07 +00:00

Add metadata to CoreInode.

This commit is contained in:
Andreas Kling 2018-11-13 13:32:16 +01:00
parent 10c470e95f
commit 26852a8363
5 changed files with 42 additions and 25 deletions

View file

@ -17,13 +17,16 @@ class Ext2Inode final : public CoreInode {
public:
virtual ~Ext2Inode() override;
virtual Unix::ssize_t read_bytes(Unix::off_t, Unix::size_t, byte* buffer, FileDescriptor*) override;
size_t size() const { return m_raw_inode.i_size; }
bool is_symlink() const { return isSymbolicLink(m_raw_inode.i_mode); }
private:
// ^CoreInode
virtual Unix::ssize_t read_bytes(Unix::off_t, Unix::size_t, byte* buffer, FileDescriptor*) override;
virtual void populate_metadata() const override;
Ext2FileSystem& fs();
const Ext2FileSystem& fs() const;
Ext2Inode(Ext2FileSystem&, unsigned index, const ext2_inode&);
SpinLock m_lock;
@ -110,3 +113,8 @@ inline Ext2FileSystem& Ext2Inode::fs()
{
return static_cast<Ext2FileSystem&>(CoreInode::fs());
}
inline const Ext2FileSystem& Ext2Inode::fs() const
{
return static_cast<const Ext2FileSystem&>(CoreInode::fs());
}