Fixed 32bit error in lseek
Lseek truncated the result when offset was a 64bit value.
Change-Id: I222afb0b5570a2dfac7a002593baaae322f9024a
Signed-off-by: Kyle Milka <kmilka@google.com>
[removed virtio-blk extras]
Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
diff --git a/kern/src/syscall.c b/kern/src/syscall.c
index 64f6a17..2673eb5 100644
--- a/kern/src/syscall.c
+++ b/kern/src/syscall.c
@@ -1869,10 +1869,8 @@
ret = file->f_op->llseek(file, tempoff, &retoff, whence);
kref_put(&file->f_kref);
} else {
- /* won't return here if error ... */
- ret = sysseek(fd, tempoff, whence);
- retoff = ret;
- ret = 0;
+ retoff = sysseek(fd, tempoff, whence);
+ ret = (retoff < 0);
}
if (ret)