summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Bushnell <thomas@gnu.org>1996-08-29 21:44:27 +0000
committerThomas Bushnell <thomas@gnu.org>1996-08-29 21:44:27 +0000
commit0e06db4c6fa5ffd7c5861bc147a2badd5964aaf4 (patch)
tree1aa50ef4016603cf4a600c4cc51b8c8fa9bf82a7
parente128668294e30480360c7e50269e4cc73e2b9881 (diff)
*** empty log message ***
-rw-r--r--term/ChangeLog7
-rw-r--r--term/devio.c5
-rw-r--r--term/users.c5
3 files changed, 15 insertions, 2 deletions
diff --git a/term/ChangeLog b/term/ChangeLog
index 1e4854c6..c6a02d5a 100644
--- a/term/ChangeLog
+++ b/term/ChangeLog
@@ -1,3 +1,10 @@
+Thu Aug 29 17:26:37 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
+
+ * devio.c (device_open_reply): After error from ports_create_port,
+ unlock global_lock before returning.
+ * users.c (trivfs_S_io_readable): Likewise before returning
+ EBADF.
+
Thu Aug 15 16:07:07 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* users.c (trivfs_S_io_pathconf): Implement function.
diff --git a/term/devio.c b/term/devio.c
index e8f7f0b6..cad276de 100644
--- a/term/devio.c
+++ b/term/devio.c
@@ -468,7 +468,10 @@ device_open_reply (mach_port_t replyport,
sizeof (struct port_info),
&phys_reply_writes_pi);
if (errno)
- return errno;
+ {
+ mutex_unlock (&global_lock);
+ return errno;
+ }
phys_reply_writes = ports_get_right (phys_reply_writes_pi);
mach_port_insert_right (mach_task_self (), phys_reply_writes,
phys_reply_writes, MACH_MSG_TYPE_MAKE_SEND);
diff --git a/term/users.c b/term/users.c
index cf89fee5..9396dd5f 100644
--- a/term/users.c
+++ b/term/users.c
@@ -795,7 +795,10 @@ trivfs_S_io_readable (struct trivfs_protid *cred,
mutex_lock (&global_lock);
if ((cred->po->openmodes & O_READ) == 0)
- return EBADF;
+ {
+ mutex_unlock (&global_lock);
+ return EBADF;
+ }
*amt = qsize (inputq);
if (remote_input_mode && *amt)
--*amt;