move-up-cell-initialization-in-cachemgr-20030323
[openafs.git] / src / afs / afs_call.c
index f3d6268..e30b5be 100644 (file)
@@ -63,7 +63,7 @@ simple_lock_data_t afs_global_lock;
 struct lock__bsd__ afs_global_lock;
 #endif
 
-#if defined(AFS_FBSD_ENV)
+#if defined(AFS_XBSD_ENV)
 struct lock afs_global_lock;
 struct proc *afs_global_owner;
 #endif
@@ -89,6 +89,9 @@ extern struct interfaceAddr afs_cb_interface;
 static int afs_RX_Running = 0;
 static int afs_InitSetup_done = 0;
 
+afs_int32 afs_rx_deadtime = AFS_RXDEADTIME;
+afs_int32 afs_rx_harddead = AFS_HARDDEADTIME;
+
 static int
 Afscall_icl(long opcode, long p1, long p2, long p3, long p4, long *retval);
 
@@ -125,7 +128,7 @@ static int afs_InitSetup(int preallocs)
        printf("AFS: RX failed to initialize.\n");
        return code;
     }
-    rx_SetRxDeadTime(AFS_RXDEADTIME);
+    rx_SetRxDeadTime(afs_rx_deadtime);
     /* resource init creates the services */
     afs_ResourceInit(preallocs);
 
@@ -150,6 +153,7 @@ static int afsd_thread(void *rock) {
     daemonize(); /* doesn't do much, since we were forked from keventd, but
                    does call mm_release, which wakes up our parent (since it
                    used CLONE_VFORK) */
+    reparent_to_init();
     afs_osi_MaskSignals();
     switch (parm) {
     case AFSOP_START_RXCALLBACK:
@@ -503,8 +507,10 @@ long parm, parm2, parm3, parm4, parm5, parm6;
        char *tbuffer1 = osi_AllocSmallSpace(AFS_SMALLOCSIZ);
        int cflags = parm4;
 
-       /* wait for basic init */
+#if 0
+       /* wait for basic init - XXX can't find any reason we need this? */
        while (afs_initState < AFSOP_START_BKG) afs_osi_Sleep(&afs_initState);
+#endif
 
        AFS_COPYIN((char *)parm2, (char *)tcell.hosts, sizeof(tcell.hosts), code);
        if (!code) {
@@ -756,10 +762,8 @@ long parm, parm2, parm3, parm4, parm5, parm6;
       mtu = ((i == -1) ? htonl(1500) : afs_cb_interface.mtu[i]);
 #else /* AFS_USERSPACE_IP_ADDR */
       struct ifnet *tifnp;
-      struct in_ifaddr *tifadp = (struct in_ifaddr *) 0;
-      extern struct ifnet *rxi_FindIfnet();
-      tifnp = rxi_FindIfnet(parm2, &tifadp);  /*  make iterative */
+
+      tifnp = rxi_FindIfnet(parm2, NULL);  /*  make iterative */
       mtu = (tifnp ? tifnp->if_mtu : htonl(1500));
 #endif /* else AFS_USERSPACE_IP_ADDR */
 #endif /* !AFS_SUN5_ENV */
@@ -795,22 +799,10 @@ long parm, parm2, parm3, parm4, parm5, parm6;
       }
 #else /* AFS_USERSPACE_IP_ADDR */
       struct ifnet *tifnp;
-#ifdef AFS_DARWIN60_ENV
-      struct ifaddr *tifadp = (struct ifaddr *) 0;
-#else
-      struct in_ifaddr *tifadp = (struct in_ifaddr *) 0;
-#endif
-      extern struct ifnet *rxi_FindIfnet();
-      tifnp = rxi_FindIfnet(parm2, &tifadp);  /* make iterative */
-      if (tifnp && tifadp) {
-#ifdef AFS_DARWIN60_ENV
-        mask = ((struct sockaddr_in *)tifadp->ifa_netmask)->sin_addr.s_addr;
-#else
-        mask = tifadp->ia_subnetmask;
-#endif
-      } else {
+
+      tifnp = rxi_FindIfnet(parm2, &mask);  /* make iterative */
+      if (!tifnp)
         code = -1;
-      }
 #endif /* else AFS_USERSPACE_IP_ADDR */
 #endif /* !AFS_SUN5_ENV */
       if (!code) 
@@ -1458,7 +1450,7 @@ void afs_shutdown(void)
 #endif
 #if    defined(AFS_SUN5_ENV) || defined(RXK_LISTENER_ENV)
     afs_warn("RxEvent... ");
-    /* cancel rx event deamon */
+    /* cancel rx event daemon */
     while (afs_termState == AFSOP_STOP_RXEVENT) 
        afs_osi_Sleep(&afs_termState);
 #if defined(RXK_LISTENER_ENV)