+ llist_append(&pos->head, &vmregion->head);
+}
+
+void
+region_release(struct mm_region* region)
+{
+ if (region->destruct_region) {
+ region->destruct_region(region);
+ }
+
+ if (region->mfile) {
+ struct proc_mm* mm = region->proc_vms;
+ vfs_pclose(region->mfile, mm->proc->pid);
+ }
+
+ if (region->index) {
+ *region->index = NULL;
+ }
+
+ vfree(region);