summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael I. Bushnell <mib@gnu.org>1994-09-01 20:56:03 +0000
committerMichael I. Bushnell <mib@gnu.org>1994-09-01 20:56:03 +0000
commitac26caff5e070834ee299f0c434bf277f03afd02 (patch)
tree4a35c1f9fb466b2ad97711f22ee4b9fa398dee18
parent185c83cd9e822d5ede85a7753fb21f2aec2713db (diff)
Formerly fsys-getroot.c.~15~
-rw-r--r--libdiskfs/fsys-getroot.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/libdiskfs/fsys-getroot.c b/libdiskfs/fsys-getroot.c
index 91330b1c..8be2d693 100644
--- a/libdiskfs/fsys-getroot.c
+++ b/libdiskfs/fsys-getroot.c
@@ -67,7 +67,9 @@ diskfs_S_fsys_getroot (fsys_t controlport,
if (childcontrol == MACH_PORT_NULL)
{
- if (error = diskfs_start_translator (diskfs_root_node, dotdot))
+ mach_port_mod_refs (mach_task_self (), dotdot,
+ MACH_PORT_RIGHT_SEND, 1);
+ if (error = diskfs_start_translator (diskfs_root_node, dotdot, 0))
{
mutex_unlock (&diskfs_root_node->lock);
return error;
@@ -99,6 +101,9 @@ diskfs_S_fsys_getroot (fsys_t controlport,
*returned_port_poly = MACH_MSG_TYPE_MOVE_SEND;
else
*returned_port_poly = MACH_MSG_TYPE_COPY_SEND;
+
+ if (!error)
+ mach_port_deallocate (mach_task_self (), dotdot);
return error;
}
@@ -127,6 +132,7 @@ diskfs_S_fsys_getroot (fsys_t controlport,
*returned_port = MACH_PORT_NULL;
*returned_port_poly = MACH_MSG_TYPE_COPY_SEND;
strcpy (retryname, pathbuf);
+ mach_port_deallocate (mach_task_self (), dotdot);
return 0;
}
else