1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-16 06:14:58 +00:00

Reworked Inode to have a dirty bit and subclass-implemented flush_metadata().

This way we can defer disk writes as long as we like. There's no automatic
flushing happening just yet.
This commit is contained in:
Andreas Kling 2018-12-19 21:56:45 +01:00
parent d506c857ab
commit 1f44cd9dd9
11 changed files with 82 additions and 58 deletions

View file

@ -143,7 +143,7 @@ ssize_t FileDescriptor::read(byte* buffer, size_t count)
// FIXME: What should happen to m_currentOffset?
return m_vnode->characterDevice()->read(buffer, count);
}
ssize_t nread = m_vnode->fileSystem()->read_inode_bytes(m_vnode->inode, m_current_offset, count, buffer, this);
ssize_t nread = m_vnode->fs()->read_inode_bytes(m_vnode->inode, m_current_offset, count, buffer, this);
m_current_offset += nread;
return nread;
}
@ -196,7 +196,7 @@ ByteBuffer FileDescriptor::read_entire_file()
if (m_vnode->core_inode())
return m_vnode->core_inode()->read_entire(this);
return m_vnode->fileSystem()->read_entire_inode(m_vnode->inode, this);
return m_vnode->fs()->read_entire_inode(m_vnode->inode, this);
}
bool FileDescriptor::is_directory() const
@ -288,17 +288,3 @@ FileDescriptor::FileDescriptor(FIFO& fifo, FIFO::Direction direction)
{
m_fifo->open(direction);
}
int FileDescriptor::set_atime_and_mtime(time_t atime, time_t mtime)
{
if (!m_vnode || !m_vnode->core_inode())
return -EBADF;
return m_vnode->core_inode()->set_atime_and_mtime(atime, mtime);
}
int FileDescriptor::set_ctime(time_t ctime)
{
(void) ctime;
// FIXME: Implement.
ASSERT_NOT_REACHED();
}