diff options
Diffstat (limited to 'libfshelp/set-active.c')
-rw-r--r-- | libfshelp/set-active.c | 31 |
1 files changed, 1 insertions, 30 deletions
diff --git a/libfshelp/set-active.c b/libfshelp/set-active.c index 5cf3ec38..b2f49cf4 100644 --- a/libfshelp/set-active.c +++ b/libfshelp/set-active.c @@ -24,40 +24,11 @@ error_t fshelp_set_active (struct transbox *box, mach_port_t active, - int excl, int goaway, int flags) + int excl) { - error_t error; - - start_over: if (excl && box->active != MACH_PORT_NULL) return EBUSY; - if (goaway && box->active != MACH_PORT_NULL) - { - fsys_t control; - - error = fshelp_fetch_control (box, &control); - if (error) - return error; - - mutex_unlock (box->lock); - error = fsys_goaway (control, flags); - mutex_lock (box->lock); - if (error) - { - mach_port_deallocate (mach_task_self (), control); - return error; - } - - /* If it changed while we were unlocked, better start over. */ - if (box->active != control) - { - mach_port_deallocate (mach_task_self (), control); - goto start_over; - } - mach_port_deallocate (mach_task_self (), control); - } - if (box->active != MACH_PORT_NULL) mach_port_deallocate (mach_task_self (), box->active); |