#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
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; \