From a47544320d181ab85978b381fadf92a566a84980 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Tue, 21 Oct 2003 05:27:24 +0000 Subject: [PATCH] Fixed File::ReadAt() (it didn't return the actual length read, just B_OK). Visually simplified Volume::ToBlock(). git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5109 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kernel/boot/loader/file_systems/bfs/File.cpp | 6 +++++- src/kernel/boot/loader/file_systems/bfs/Volume.h | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/kernel/boot/loader/file_systems/bfs/File.cpp b/src/kernel/boot/loader/file_systems/bfs/File.cpp index 122d0d9fee..b4cea6b7d4 100644 --- a/src/kernel/boot/loader/file_systems/bfs/File.cpp +++ b/src/kernel/boot/loader/file_systems/bfs/File.cpp @@ -47,7 +47,11 @@ File::InitCheck() ssize_t File::ReadAt(void *cookie, off_t pos, void *buffer, size_t bufferSize) { - return fStream.ReadAt(pos, (uint8 *)buffer, &bufferSize); + status_t status = fStream.ReadAt(pos, (uint8 *)buffer, &bufferSize); + if (status < B_OK) + return status; + + return bufferSize; } diff --git a/src/kernel/boot/loader/file_systems/bfs/Volume.h b/src/kernel/boot/loader/file_systems/bfs/Volume.h index 68e6a9e4d1..af019b9e23 100644 --- a/src/kernel/boot/loader/file_systems/bfs/Volume.h +++ b/src/kernel/boot/loader/file_systems/bfs/Volume.h @@ -47,7 +47,7 @@ class Volume { off_t ToOffset(block_run run) const { return ToBlock(run) << BlockShift(); } off_t ToOffset(off_t block) const { return block << BlockShift(); } - off_t ToBlock(block_run run) const { return ((((off_t)run.AllocationGroup()) << AllocationGroupShift()) | (off_t)run.Start()); } + off_t ToBlock(block_run run) const { return ((off_t)run.AllocationGroup() << AllocationGroupShift()) | (uint32)run.Start(); } block_run ToBlockRun(off_t block) const; status_t ValidateBlockRun(block_run run);