util: Handle serverLogMutex lock across forks
[openafs.git] / src / util / serverLog.c
index 2ae8a6f..60e8517 100644 (file)
@@ -508,9 +508,24 @@ SetupLogSignals(void)
 
 #if defined(AFS_PTHREAD_ENV)
 static void
+LockServerLog(void)
+{
+    LOCK_SERVERLOG();
+}
+
+static void
+UnlockServerLog(void)
+{
+    UNLOCK_SERVERLOG();
+}
+
+static void
 InitServerLogMutex(void)
 {
     opr_Verify(pthread_mutex_init(&serverLogMutex, NULL) == 0);
+# ifndef AFS_NT40_ENV
+    opr_Verify(pthread_atfork(LockServerLog, UnlockServerLog, UnlockServerLog) == 0);
+# endif
 }
 #endif /* AFS_PTHREAD_ENV */