]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Merge changes from 1.2.3rc1 to 1.2.3rc3
authorSam Hartman <hartmans@debian.org>
Mon, 28 Jan 2002 00:53:20 +0000 (00:53 +0000)
committerSam Hartman <hartmans@debian.org>
Mon, 28 Jan 2002 00:53:20 +0000 (00:53 +0000)
src/afs/LINUX/osi_misc.c
src/afs/afs_call.c

index 3fd2b93b9a2a60104f6aa96c59523de900d72008..28ff16fbccbfac5204029c33cba050afb69b7b76 100644 (file)
@@ -14,7 +14,7 @@
 #include <afsconfig.h>
 #include "../afs/param.h"
 
-RCSID("$Header: /tmp/cvstemp/openafs/src/afs/LINUX/osi_misc.c,v 1.7 2001/09/11 15:47:37 hartmans Exp $");
+RCSID("$Header: /tmp/cvstemp/openafs/src/afs/LINUX/osi_misc.c,v 1.8 2002/01/28 00:53:20 hartmans Exp $");
 
 #include "../afs/sysincludes.h"
 #include "../afs/afsincludes.h"
@@ -427,3 +427,23 @@ void check_bad_parent(struct dentry *dp)
  
   return;
 }
+
+struct task_struct *rxk_ListenerTask;
+
+void osi_linux_mask() {
+    spin_lock_irq(&current->sigmask_lock);
+    sigfillset(&current->blocked);
+    recalc_sigpending(current);
+    spin_unlock_irq(&current->sigmask_lock);
+}
+
+void osi_linux_unmask() {
+    spin_lock_irq(&rxk_ListenerTask->sigmask_lock);
+    sigemptyset(&rxk_ListenerTask->blocked);
+    recalc_sigpending(rxk_ListenerTask);
+    spin_unlock_irq(&rxk_ListenerTask->sigmask_lock);
+}
+
+void osi_linux_rxkreg() {
+    rxk_ListenerTask = current;
+}
index cda14dcb0d1a0e8cf5027f9c498ac88627f3a994..54e80dc59d2a8788537ab91e12bc326bf284d9b5 100644 (file)
@@ -10,7 +10,7 @@
 #include <afsconfig.h>
 #include "../afs/param.h"
 
-RCSID("$Header: /tmp/cvstemp/openafs/src/afs/afs_call.c,v 1.9 2002/01/22 20:29:43 hartmans Exp $");
+RCSID("$Header: /tmp/cvstemp/openafs/src/afs/afs_call.c,v 1.10 2002/01/28 00:53:19 hartmans Exp $");
 
 #include "../afs/sysincludes.h"        /* Standard vendor system headers */
 #include "../afs/afsincludes.h"        /* Afs-based standard headers */
@@ -191,6 +191,9 @@ long parm, parm2, parm3, parm4, parm5, parm6;
            afs_osi_Invisible();
            afs_RX_Running = 2;
            afs_osi_Wakeup(&afs_RX_Running);
+#ifndef UKERNEL
+           afs_osi_RxkRegister();
+#endif
            rxk_Listener();
        }
 #ifdef AFS_SGI_ENV
@@ -637,6 +640,9 @@ long parm, parm2, parm3, parm4, parm5, parm6;
        afs_int32 *kmsg = afs_osi_Alloc(kmsgLen);
        char *cellname = afs_osi_Alloc(cellLen);
 
+#ifndef UKERNEL
+       afs_osi_MaskSignals();
+#endif
        AFS_COPYIN((afs_int32 *)parm2, cellname, cellLen, code);
        AFS_COPYIN((afs_int32 *)parm3, kmsg, kmsgLen, code);
        if (!code) {
@@ -1254,6 +1260,9 @@ afs_shutdown()
        afs_osi_Sleep(&afs_termState);
 #if defined(RXK_LISTENER_ENV)
     afs_warn("RxListener... ");
+#ifndef UKERNEL
+    afs_osi_UnmaskRxkSignals();
+#endif
     /* cancel rx listener */
     osi_StopListener(); /* This closes rx_socket. */
     while (afs_termState == AFSOP_STOP_RXK_LISTENER)