mirror of
https://github.com/drasko/codezero.git
synced 2026-05-30 05:45:58 +02:00
Fixed a bug with returned fd from sys_open
This commit is contained in:
@@ -1057,7 +1057,6 @@ int sys_open(struct tcb *task, const char *pathname,
|
|||||||
task->files->fd[fd].vmfile = vmfile;
|
task->files->fd[fd].vmfile = vmfile;
|
||||||
|
|
||||||
vmfile->openers++;
|
vmfile->openers++;
|
||||||
retval = 0;
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,8 +98,8 @@ int file_page_out(struct vm_object *vm_obj, unsigned long page_offset)
|
|||||||
/* Map the page to self */
|
/* Map the page to self */
|
||||||
l4_map(paddr, vaddr, 1, MAP_USR_RW_FLAGS, self_tid());
|
l4_map(paddr, vaddr, 1, MAP_USR_RW_FLAGS, self_tid());
|
||||||
|
|
||||||
printf("%s/%s: Writing to vnode %lu, at pgoff 0x%lu, %d pages, buf at %p\n",
|
//printf("%s/%s: Writing to vnode %lu, at pgoff 0x%lu, %d pages, buf at %p\n",
|
||||||
__TASKNAME__, __FUNCTION__, f->vnode->vnum, page_offset, 1, vaddr);
|
// __TASKNAME__, __FUNCTION__, f->vnode->vnum, page_offset, 1, vaddr);
|
||||||
|
|
||||||
/* Syscall to vfs to write page back to file. */
|
/* Syscall to vfs to write page back to file. */
|
||||||
if ((err = vfs_write(f->vnode, page_offset, 1, vaddr)) < 0)
|
if ((err = vfs_write(f->vnode, page_offset, 1, vaddr)) < 0)
|
||||||
@@ -151,8 +151,8 @@ struct page *file_page_in(struct vm_object *vm_obj, unsigned long page_offset)
|
|||||||
1, vaddr)) < 0)
|
1, vaddr)) < 0)
|
||||||
goto out_err;
|
goto out_err;
|
||||||
|
|
||||||
printf("%s/%s: Reading into vnode %lu, at pgoff 0x%lu, %d pages, buf at %p\n",
|
// printf("%s/%s: Reading into vnode %lu, at pgoff 0x%lu, %d pages, buf at %p\n",
|
||||||
__TASKNAME__, __FUNCTION__, f->vnode->vnum, page_offset, 1, vaddr);
|
// __TASKNAME__, __FUNCTION__, f->vnode->vnum, page_offset, 1, vaddr);
|
||||||
|
|
||||||
/* Unmap it from vfs */
|
/* Unmap it from vfs */
|
||||||
l4_unmap(vaddr, 1, self_tid());
|
l4_unmap(vaddr, 1, self_tid());
|
||||||
|
|||||||
Reference in New Issue
Block a user