Whamcloud - gitweb
b=22625 Fix libcfs_debug_file_path module option
[fs/lustre-release.git] / libcfs / libcfs / debug.c
index e637150..fc2ac95 100644 (file)
@@ -60,8 +60,8 @@ CFS_MODULE_PARM(libcfs_debug, "i", int, 0644,
                 "Lustre kernel debug mask");
 EXPORT_SYMBOL(libcfs_debug);
 
-int libcfs_debug_mb = -1;
-CFS_MODULE_PARM(libcfs_debug_mb, "i", int, 0644,
+unsigned int libcfs_debug_mb = 0;
+CFS_MODULE_PARM(libcfs_debug_mb, "i", uint, 0644,
                 "Total debug buffer size.");
 EXPORT_SYMBOL(libcfs_debug_mb);
 
@@ -115,10 +115,10 @@ EXPORT_SYMBOL(libcfs_kmemory);
 
 static cfs_waitq_t debug_ctlwq;
 
-char libcfs_debug_file_path_arr[1024] = LIBCFS_DEBUG_FILE_PATH_DEFAULT;
+char libcfs_debug_file_path_arr[PATH_MAX] = LIBCFS_DEBUG_FILE_PATH_DEFAULT;
 
 /* We need to pass a pointer here, but elsewhere this must be a const */
-char *libcfs_debug_file_path = &libcfs_debug_file_path_arr[0];
+char *libcfs_debug_file_path;
 CFS_MODULE_PARM(libcfs_debug_file_path, "s", charp, 0644,
                 "Path for dumping debug logs, "
                 "set 'NONE' to prevent log dumping");
@@ -382,7 +382,7 @@ void libcfs_debug_dumplog(void)
 int libcfs_debug_init(unsigned long bufsize)
 {
         int    rc = 0;
-        int    max = libcfs_debug_mb;
+        unsigned int max = libcfs_debug_mb;
 
         cfs_waitq_init(&debug_ctlwq);
 
@@ -393,6 +393,12 @@ int libcfs_debug_init(unsigned long bufsize)
                 libcfs_console_min_delay = CDEBUG_DEFAULT_MIN_DELAY;
         }
 
+        if (libcfs_debug_file_path != NULL) {
+                memset(libcfs_debug_file_path_arr, 0, PATH_MAX);
+                strncpy(libcfs_debug_file_path_arr, 
+                        libcfs_debug_file_path, PATH_MAX-1);
+        }
+
         /* If libcfs_debug_mb is set to an invalid value or uninitialized
          * then just make the total buffers smp_num_cpus * TCD_MAX_PAGES */
         if (max > cfs_trace_max_debug_mb() || max < cfs_num_possible_cpus()) {