summaryrefslogtreecommitdiff
path: root/vm/vm_anon.c
diff options
context:
space:
mode:
Diffstat (limited to 'vm/vm_anon.c')
-rw-r--r--vm/vm_anon.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/vm/vm_anon.c b/vm/vm_anon.c
index e6d1385f..ebee5fcc 100644
--- a/vm/vm_anon.c
+++ b/vm/vm_anon.c
@@ -113,16 +113,22 @@ vm_anon_get(struct vm_object *object, uint64_t offset,
struct vm_page **pagep)
{
struct vm_page *page;
+ int error;
page = vm_phys_alloc(0);
if (page == NULL)
return ERROR_NOMEM;
- /* TODO Insert page in object */
- (void)object;
- (void)offset;
+ error = vm_object_add(object, offset, page);
+
+ if (error)
+ goto error_object;
*pagep = page;
return 0;
+
+error_object:
+ vm_phys_free(page, 0);
+ return error;
}