X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=libcfs%2Finclude%2Flibcfs%2Flibcfs_debug.h;h=87c03d576e4e5e22477d8976d9c4a585d3001429;hp=31672314c38af2f047a677896445e14cf7228279;hb=54d3582b1f8385d2afaa5b6e9a4bb6b3db8cf154;hpb=b76f327de7836a854f204d28e61de52bc03011b1 diff --git a/libcfs/include/libcfs/libcfs_debug.h b/libcfs/include/libcfs/libcfs_debug.h index 3167231..87c03d5 100644 --- a/libcfs/include/libcfs/libcfs_debug.h +++ b/libcfs/include/libcfs/libcfs_debug.h @@ -26,6 +26,8 @@ /* * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. + * + * Copyright (c) 2012 Whamcloud, Inc. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -149,6 +151,7 @@ struct ptldebug_header { #define D_CONSOLE 0x02000000 #define D_QUOTA 0x04000000 #define D_SEC 0x08000000 +#define D_LFSCK 0x10000000 /* For both OI scrub and LFSCK */ /* keep these in sync with lnet/{utils,libcfs}/debug.c */ #define D_HSM D_TRACE @@ -177,6 +180,16 @@ struct libcfs_debug_msg_data { cfs_debug_limit_state_t *msg_cdls; }; +#define LIBCFS_DEBUG_MSG_DATA_INIT(data, mask, cdls) \ +do { \ + (data)->msg_subsys = DEBUG_SUBSYSTEM; \ + (data)->msg_file = __FILE__; \ + (data)->msg_fn = __FUNCTION__; \ + (data)->msg_line = __LINE__; \ + (data)->msg_cdls = (cdls); \ + (data)->msg_mask = (mask); \ +} while (0) + #define LIBCFS_DEBUG_MSG_DATA_DECL(dataname, mask, cdls) \ static struct libcfs_debug_msg_data dataname = { \ .msg_subsys = DEBUG_SUBSYSTEM, \ @@ -201,12 +214,14 @@ static inline int cfs_cdebug_show(unsigned int mask, unsigned int subsystem) #define __CDEBUG(cdls, mask, format, ...) \ do { \ - LIBCFS_DEBUG_MSG_DATA_DECL(msgdata, mask, cdls); \ + static struct libcfs_debug_msg_data msgdata; \ \ CFS_CHECK_STACK(&msgdata, mask, cdls); \ \ - if (cfs_cdebug_show(mask, DEBUG_SUBSYSTEM)) \ + if (cfs_cdebug_show(mask, DEBUG_SUBSYSTEM)) { \ + LIBCFS_DEBUG_MSG_DATA_INIT(&msgdata, mask, cdls); \ libcfs_debug_msg(&msgdata, format, ## __VA_ARGS__); \ + } \ } while (0) #define CDEBUG(mask, format, ...) __CDEBUG(NULL, mask, format, ## __VA_ARGS__)