From ac26caff5e070834ee299f0c434bf277f03afd02 Mon Sep 17 00:00:00 2001 From: "Michael I. Bushnell" Date: Thu, 1 Sep 1994 20:56:03 +0000 Subject: Formerly fsys-getroot.c.~15~ --- libdiskfs/fsys-getroot.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3