bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

libpager/data-request.c:_pager_allow_termination called without holding


From: Neal H Walfield
Subject: libpager/data-request.c:_pager_allow_termination called without holding P->interlock
Date: 01 Apr 2002 20:35:32 -0500
User-agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/21.1

Small bug.  Shall I apply this fix?

2002-04-01  Neal H Walfield  <neal@cs.uml.edu>

        * data-request.c (_pager_seqnos_memory_object_data_request): Must
        hold P->interlock when calling _pager_allow_termination.


Index: data-request.c
===================================================================
RCS file: /cvsroot/hurd/hurd/libpager/data-request.c,v
retrieving revision 1.20
diff -u -u -p -r1.20 data-request.c
--- data-request.c      25 Jul 2000 19:40:27 -0000      1.20
+++ data-request.c      2 Apr 2002 01:26:29 -0000
@@ -1,5 +1,5 @@
 /* Implementation of memory_object_data_request for pager library
-   Copyright (C) 1994, 1995, 1996, 1997, 2000 Free Software Foundation
+   Copyright (C) 1994,95,96,97,2000,02 Free Software Foundation
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
@@ -130,17 +130,13 @@ _pager_seqnos_memory_object_data_request
   ports_port_deref (p);
   return 0;
 
- allow_term_out:
-  mutex_lock (&p->interlock);
-  _pager_allow_termination (p);
-  mutex_unlock (&p->interlock);
-  ports_port_deref (p);
-  return 0;
-  
  error_read:
   memory_object_data_error (p->memobjcntl, offset, length, EIO);
   _pager_mark_object_error (p, offset, length, EIO);
+ allow_term_out:
+  mutex_lock (&p->interlock);
   _pager_allow_termination (p);
+  mutex_unlock (&p->interlock);
   ports_port_deref (p);
   return 0;
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]