From 2d954d06acbcf9a5f7668a1897850c9b7be6b8f3 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Fri, 27 Jul 2007 14:23:44 +0100 Subject: [PATCH] fix preprocessor idiocy in reiserfs #x blocks expansion of macro argument, but it won't do you any good if it's already been expanded... As it is, RFALSE(cond, ....) ended up with stringified _expanded_ cond. Real fun when cond contains something like le32_to_cpu() and you are on a big-endian box... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds --- include/linux/reiserfs_fs.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/include/linux/reiserfs_fs.h b/include/linux/reiserfs_fs.h index 965d5b3ea9..180a9d832d 100644 --- a/include/linux/reiserfs_fs.h +++ b/include/linux/reiserfs_fs.h @@ -81,14 +81,16 @@ void reiserfs_warning(struct super_block *s, const char *fmt, ...); /* assertions handling */ /** always check a condition and panic if it's false. */ -#define RASSERT( cond, format, args... ) \ +#define __RASSERT( cond, scond, format, args... ) \ if( !( cond ) ) \ - reiserfs_panic( NULL, "reiserfs[%i]: assertion " #cond " failed at " \ + reiserfs_panic( NULL, "reiserfs[%i]: assertion " scond " failed at " \ __FILE__ ":%i:%s: " format "\n", \ in_interrupt() ? -1 : current -> pid, __LINE__ , __FUNCTION__ , ##args ) +#define RASSERT(cond, format, args...) __RASSERT(cond, #cond, format, ##args) + #if defined( CONFIG_REISERFS_CHECK ) -#define RFALSE( cond, format, args... ) RASSERT( !( cond ), format, ##args ) +#define RFALSE(cond, format, args...) __RASSERT(!(cond), "!(" #cond ")", format, ##args) #else #define RFALSE( cond, format, args... ) do {;} while( 0 ) #endif -- 2.39.5