diff options
-rw-r--r-- | libdiskfs/file-getcontrol.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libdiskfs/file-getcontrol.c b/libdiskfs/file-getcontrol.c index 6c53a12f..4ea2ae8e 100644 --- a/libdiskfs/file-getcontrol.c +++ b/libdiskfs/file-getcontrol.c @@ -33,7 +33,11 @@ diskfs_S_file_getcontrol (struct protid *cred, error = EPERM; else { - *control = ports_get_right (diskfs_control_port); + spin_lock (&_diskfs_control_lock); + _diskfs_ncontrol_ports++; + spin_lock (&_diskfs_control_lock); + *control = ports_get_right (ports_allocate_port + (sizeof (struct port_info), PT_CTL)); *controltype = MACH_MSG_TYPE_MAKE_SEND; } |