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

Get rid of FS::read_inode_bytes() and use Inode::read_bytes() everywhere.

This commit is contained in:
Andreas Kling 2018-12-21 17:28:16 +01:00
parent 951ed6692b
commit 8a71303827
8 changed files with 11 additions and 127 deletions

View file

@ -79,15 +79,16 @@ ByteBuffer Inode::read_entire(FileDescriptor* descriptor)
*/
}
ByteBuffer FS::read_entire_inode(InodeIdentifier inode, FileDescriptor* handle) const
ByteBuffer FS::read_entire_inode(InodeIdentifier inode_id, FileDescriptor* handle) const
{
ASSERT(inode.fsid() == id());
ASSERT(inode_id.fsid() == id());
auto metadata = inode_metadata(inode);
if (!metadata.isValid()) {
kprintf("[fs] readInode: metadata lookup for inode %u failed\n", inode.index());
auto inode = get_inode(inode_id);
if (!inode) {
kprintf("fs: read_entire_inode: lookup for inode %u:%u failed\n", id(), inode_id.index());
return nullptr;
}
auto metadata = inode->metadata();
size_t initialSize = metadata.size ? metadata.size : 4096;
auto contents = ByteBuffer::create_uninitialized(initialSize);
@ -97,7 +98,7 @@ ByteBuffer FS::read_entire_inode(InodeIdentifier inode, FileDescriptor* handle)
byte* out = contents.pointer();
Unix::off_t offset = 0;
for (;;) {
nread = read_inode_bytes(inode, offset, sizeof(buffer), buffer, handle);
nread = inode->read_bytes(offset, sizeof(buffer), buffer, handle);
//kprintf("nread: %u, bufsiz: %u, initialSize: %u\n", nread, sizeof(buffer), initialSize);
ASSERT(nread <= (ssize_t)sizeof(buffer));
if (nread <= 0)