From: Al Viro Date: Fri, 27 Jul 2007 13:23:44 +0000 (+0100) Subject: fix preprocessor idiocy in reiserfs X-Git-Tag: v2.6.23-rc2~176 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=2d954d06acbcf9a5f7668a1897850c9b7be6b8f3;p=linux-2.6-omap-h63xx.git 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 --- diff --git a/include/linux/reiserfs_fs.h b/include/linux/reiserfs_fs.h index 965d5b3ea9e..180a9d832dd 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