]> git.proxmox.com Git - mirror_zfs.git/blobdiff - include/sys/zfs_debug.h
Fixes for procfs files backed by linked lists
[mirror_zfs.git] / include / sys / zfs_debug.h
index b9b06a5ad13f455ddfe2b5c3c10895e7efec9626..f3a936ae7ba0d7ad2f102196832684180895d291 100644 (file)
@@ -20,7 +20,7 @@
  */
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012, 2014 by Delphix. All rights reserved.
+ * Copyright (c) 2012, 2017 by Delphix. All rights reserved.
  */
 
 #ifndef _SYS_ZFS_DEBUG_H
@@ -41,32 +41,40 @@ extern "C" {
 extern int zfs_flags;
 extern int zfs_recover;
 extern int zfs_free_leak_on_eio;
+extern int zfs_dbgmsg_enable;
 
 #define        ZFS_DEBUG_DPRINTF               (1 << 0)
 #define        ZFS_DEBUG_DBUF_VERIFY           (1 << 1)
 #define        ZFS_DEBUG_DNODE_VERIFY          (1 << 2)
 #define        ZFS_DEBUG_SNAPNAMES             (1 << 3)
 #define        ZFS_DEBUG_MODIFY                (1 << 4)
-#define        ZFS_DEBUG_SPA                   (1 << 5)
+/* 1<<5 was previously used, try not to reuse */
 #define        ZFS_DEBUG_ZIO_FREE              (1 << 6)
 #define        ZFS_DEBUG_HISTOGRAM_VERIFY      (1 << 7)
 #define        ZFS_DEBUG_METASLAB_VERIFY       (1 << 8)
+#define        ZFS_DEBUG_SET_ERROR             (1 << 9)
+#define        ZFS_DEBUG_INDIRECT_REMAP        (1 << 10)
 
 extern void __dprintf(const char *file, const char *func,
     int line, const char *fmt, ...);
-#define        dprintf(...) \
-       __dprintf(__FILE__, __func__, __LINE__, __VA_ARGS__)
 #define        zfs_dbgmsg(...) \
-       __dprintf(__FILE__, __func__, __LINE__, __VA_ARGS__)
+       if (zfs_dbgmsg_enable) \
+               __dprintf(__FILE__, __func__, __LINE__, __VA_ARGS__)
 
-extern void zfs_panic_recover(const char *fmt, ...);
+#ifdef ZFS_DEBUG
+/*
+ * To enable this:
+ *
+ * $ echo 1 >/sys/module/zfs/parameters/zfs_flags
+ */
+#define        dprintf(...) \
+       if (zfs_flags & ZFS_DEBUG_DPRINTF) \
+               __dprintf(__FILE__, __func__, __LINE__, __VA_ARGS__)
+#else
+#define        dprintf(...) ((void)0)
+#endif /* ZFS_DEBUG */
 
-typedef struct zfs_dbgmsg {
-       list_node_t zdm_node;
-       time_t zdm_timestamp;
-       int zdm_size;
-       char zdm_msg[1]; /* variable length allocation */
-} zfs_dbgmsg_t;
+extern void zfs_panic_recover(const char *fmt, ...);
 
 extern void zfs_dbgmsg_init(void);
 extern void zfs_dbgmsg_fini(void);