Whamcloud - gitweb
LU-14049 utils: manage thread resources in alr_batch_print()
[fs/lustre-release.git] / lustre / utils / ofd_access_log_reader.c
index 75d5a59..5bbc20a 100644 (file)
@@ -51,6 +51,7 @@
 #include <inttypes.h>
 #include <limits.h>
 #include <malloc.h>
+#include <pthread.h>
 #include <signal.h>
 #include <string.h>
 #include <unistd.h>
@@ -127,6 +128,7 @@ static unsigned int oal_log_major;
 static unsigned int oal_log_minor_max;
 static struct alr_batch *alr_batch;
 static FILE *alr_batch_file;
+static pthread_mutex_t alr_batch_file_mutex = PTHREAD_MUTEX_INITIALIZER;
 static const char *alr_batch_file_path;
 static int alr_print_fraction = 100;
 
@@ -499,7 +501,8 @@ static int alr_batch_timer_io(int epoll_fd, struct alr_dev *td, unsigned int mas
 
        DEBUG_U(expire_count);
 
-       rc = alr_batch_print(alr_batch, alr_batch_file, alr_print_fraction);
+       rc = alr_batch_print(alr_batch, alr_batch_file, &alr_batch_file_mutex,
+                            alr_print_fraction);
        if (rc < 0) {
                ERROR("cannot write to '%s': %s\n",
                        alr_batch_file_path, strerror(errno));