syscalls: read: seek on read

This commit is contained in:
Matheus
2022-08-27 20:29:25 -03:00
parent 6d4439ee2f
commit 06e91be62e
+5 -2
View File
@@ -43,17 +43,20 @@ syscallret syscall_read(int ifd, void* buff, size_t count){
int err; int err;
size_t readc = vfs_read(&err, fd->node, kbuff, count, fd->offset); size_t readc = vfs_read(&err, fd->node, kbuff, count, fd->offset);
spinlock_release(&fd->lock);
if(err){ if(err){
spinlock_release(&fd->lock);
free(kbuff); free(kbuff);
retv.errno = err; retv.errno = err;
return retv; return retv;
} }
memcpy(buff, kbuff, count); // XXX user version for safety fd->offset += readc;
spinlock_release(&fd->lock);
memcpy(buff, kbuff, count); // XXX user version for safety
retv.errno = 0; retv.errno = 0;
retv.ret = readc; retv.ret = readc;