]> err.no Git - linux-2.6/blobdiff - fs/xfs/support/debug.h
Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
[linux-2.6] / fs / xfs / support / debug.h
index e3bf58112e7ec3492cbe4be9fd546b39a59cbbff..a27a7c8c05264c1e651e0c0651d9caa4eec64c7f 100644 (file)
@@ -33,21 +33,42 @@ extern void cmn_err(int, char *, ...)
        __attribute__ ((format (printf, 2, 3)));
 extern void assfail(char *expr, char *f, int l);
 
-#define prdev(fmt,targ,args...) \
-       printk("Device %s - " fmt "\n", XFS_BUFTARG_NAME(targ), ## args)
-
 #define ASSERT_ALWAYS(expr)    \
        (unlikely((expr) != 0) ? (void)0 : assfail(#expr, __FILE__, __LINE__))
 
 #ifndef DEBUG
 # define ASSERT(expr)  ((void)0)
-#else
-# define ASSERT(expr)  ASSERT_ALWAYS(expr)
-extern unsigned long random(void);
+
+#ifndef STATIC
+# define STATIC static noinline
 #endif
 
+#ifndef STATIC_INLINE
+# define STATIC_INLINE static inline
+#endif
+
+#else /* DEBUG */
+
+# define ASSERT(expr)  ASSERT_ALWAYS(expr)
+# include <linux/random.h>
+
 #ifndef STATIC
-# define STATIC static
+# define STATIC noinline
 #endif
 
+/*
+ * We stop inlining of inline functions in debug mode.
+ * Unfortunately, this means static inline in header files
+ * get multiple definitions, so they need to remain static.
+ * This then gives tonnes of warnings about unused but defined
+ * functions, so we need to add the unused attribute to prevent
+ * these spurious warnings.
+ */
+#ifndef STATIC_INLINE
+# define STATIC_INLINE static __attribute__ ((unused)) noinline
+#endif
+
+#endif /* DEBUG */
+
+
 #endif  /* __XFS_SUPPORT_DEBUG_H__ */