btrfs-progs: check/lowmem: Fix false alert of data extent backref lost for snapshot
[platform/upstream/btrfs-progs.git] / messages.h
index 47c6489..2b97aa0 100644 (file)
 #ifndef __BTRFS_MESSAGES_H__
 #define __BTRFS_MESSAGES_H__
 
-#if DEBUG_VERBOSE_ERROR
+#ifdef DEBUG_VERBOSE_ERROR
 #define        PRINT_VERBOSE_ERROR     fprintf(stderr, "%s:%d:", __FILE__, __LINE__)
 #else
 #define PRINT_VERBOSE_ERROR
 #endif
 
-#if DEBUG_TRACE_ON_ERROR
+#ifdef DEBUG_TRACE_ON_ERROR
 #define PRINT_TRACE_ON_ERROR   print_trace()
 #else
 #define PRINT_TRACE_ON_ERROR
 #endif
 
-#if DEBUG_ABORT_ON_ERROR
+#ifdef DEBUG_ABORT_ON_ERROR
 #define DO_ABORT_ON_ERROR      abort()
 #else
 #define DO_ABORT_ON_ERROR
@@ -39,7 +39,7 @@
        do {                                                            \
                PRINT_TRACE_ON_ERROR;                                   \
                PRINT_VERBOSE_ERROR;                                    \
-               __error((fmt), ##__VA_ARGS__);                          \
+               __btrfs_error((fmt), ##__VA_ARGS__);                    \
                DO_ABORT_ON_ERROR;                                      \
        } while (0)
 
                        PRINT_TRACE_ON_ERROR;                           \
                if ((cond))                                             \
                        PRINT_VERBOSE_ERROR;                            \
-               __error_on((cond), (fmt), ##__VA_ARGS__);               \
+               __btrfs_error_on((cond), (fmt), ##__VA_ARGS__);         \
                if ((cond))                                             \
                        DO_ABORT_ON_ERROR;                              \
        } while (0)
 
+#define error_btrfs_util(err)                                          \
+       do {                                                            \
+               const char *errno_str = strerror(errno);                \
+               const char *lib_str = btrfs_util_strerror(err);         \
+               PRINT_TRACE_ON_ERROR;                                   \
+               PRINT_VERBOSE_ERROR;                                    \
+               if (lib_str && strcmp(errno_str, lib_str) != 0)         \
+                       __btrfs_error("%s: %s", lib_str, errno_str);    \
+               else                                                    \
+                       __btrfs_error("%s", errno_str);                 \
+               DO_ABORT_ON_ERROR;                                      \
+       } while (0)
+
 #define warning(fmt, ...)                                              \
        do {                                                            \
                PRINT_TRACE_ON_ERROR;                                   \
                PRINT_VERBOSE_ERROR;                                    \
-               __warning((fmt), ##__VA_ARGS__);                        \
+               __btrfs_warning((fmt), ##__VA_ARGS__);                  \
        } while (0)
 
 #define warning_on(cond, fmt, ...)                                     \
                        PRINT_TRACE_ON_ERROR;                           \
                if ((cond))                                             \
                        PRINT_VERBOSE_ERROR;                            \
-               __warning_on((cond), (fmt), ##__VA_ARGS__);             \
+               __btrfs_warning_on((cond), (fmt), ##__VA_ARGS__);       \
        } while (0)
 
 __attribute__ ((format (printf, 1, 2)))
-void __warning(const char *fmt, ...);
+void __btrfs_warning(const char *fmt, ...);
 
 __attribute__ ((format (printf, 1, 2)))
-void __error(const char *fmt, ...);
+void __btrfs_error(const char *fmt, ...);
 
 __attribute__ ((format (printf, 2, 3)))
-int __warning_on(int condition, const char *fmt, ...);
+int __btrfs_warning_on(int condition, const char *fmt, ...);
 
 __attribute__ ((format (printf, 2, 3)))
-int __error_on(int condition, const char *fmt, ...);
+int __btrfs_error_on(int condition, const char *fmt, ...);
 
 #endif