1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 19:14:58 +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

@ -320,6 +320,28 @@ Ext2Inode::~Ext2Inode()
{
}
void Ext2Inode::populate_metadata() const
{
m_metadata.inode = identifier();
m_metadata.size = m_raw_inode.i_size;
m_metadata.mode = m_raw_inode.i_mode;
m_metadata.uid = m_raw_inode.i_uid;
m_metadata.gid = m_raw_inode.i_gid;
m_metadata.linkCount = m_raw_inode.i_links_count;
m_metadata.atime = m_raw_inode.i_atime;
m_metadata.ctime = m_raw_inode.i_ctime;
m_metadata.mtime = m_raw_inode.i_mtime;
m_metadata.dtime = m_raw_inode.i_dtime;
m_metadata.blockSize = fs().blockSize();
m_metadata.blockCount = m_raw_inode.i_blocks;
if (isBlockDevice(m_raw_inode.i_mode) || isCharacterDevice(m_raw_inode.i_mode)) {
unsigned dev = m_raw_inode.i_block[0];
m_metadata.majorDevice = (dev & 0xfff00) >> 8;
m_metadata.minorDevice= (dev & 0xff) | ((dev >> 12) & 0xfff00);
}
}
RetainPtr<CoreInode> Ext2FileSystem::get_inode(InodeIdentifier inode)
{
ASSERT(inode.fileSystemID() == id());