mirror of
https://github.com/RGBCube/serenity
synced 2025-05-17 19:05:07 +00:00
FS: Don't default to having a full InodeMetadata in every Inode.
This allows Ext2FS to keep its own ext2_inode around instead.
This commit is contained in:
parent
0cb074dc73
commit
d07b08a287
8 changed files with 93 additions and 80 deletions
|
@ -75,7 +75,7 @@ public:
|
|||
bool is_directory() const { return metadata().isDirectory(); }
|
||||
|
||||
InodeIdentifier identifier() const { return { fsid(), index() }; }
|
||||
const InodeMetadata& metadata() const { if (!m_metadata.isValid()) { populate_metadata(); } return m_metadata; }
|
||||
virtual InodeMetadata metadata() const = 0;
|
||||
|
||||
ByteBuffer read_entire(FileDescriptor* = nullptr);
|
||||
|
||||
|
@ -88,11 +88,11 @@ public:
|
|||
|
||||
bool is_metadata_dirty() const { return m_metadata_dirty; }
|
||||
|
||||
int set_atime(Unix::time_t);
|
||||
int set_ctime(Unix::time_t);
|
||||
int set_mtime(Unix::time_t);
|
||||
int increment_link_count();
|
||||
int decrement_link_count();
|
||||
virtual int set_atime(Unix::time_t);
|
||||
virtual int set_ctime(Unix::time_t);
|
||||
virtual int set_mtime(Unix::time_t);
|
||||
virtual int increment_link_count();
|
||||
virtual int decrement_link_count();
|
||||
|
||||
virtual void flush_metadata() = 0;
|
||||
|
||||
|
@ -101,10 +101,7 @@ public:
|
|||
protected:
|
||||
Inode(FS& fs, unsigned index);
|
||||
|
||||
virtual void populate_metadata() const = 0;
|
||||
void set_metadata_dirty(bool b) { m_metadata_dirty = b; }
|
||||
|
||||
mutable InodeMetadata m_metadata;
|
||||
private:
|
||||
FS& m_fs;
|
||||
unsigned m_index { 0 };
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue