From: Ingo Molnar init_rwsem() has no return value. This is not a problem if init_rwsem() is a function, but it's a problem if it's a do { ... } while (0) macro. (which lockdep introduces) Signed-off-by: Ingo Molnar Signed-off-by: Arjan van de Ven Cc: Nathan Scott Signed-off-by: Andrew Morton --- fs/xfs/linux-2.6/mrlock.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff -puN fs/xfs/linux-2.6/mrlock.h~lock-validator-lockdep-small-xfs-init_rwsem-cleanup fs/xfs/linux-2.6/mrlock.h --- devel/fs/xfs/linux-2.6/mrlock.h~lock-validator-lockdep-small-xfs-init_rwsem-cleanup 2006-06-01 20:51:25.000000000 -0700 +++ devel-akpm/fs/xfs/linux-2.6/mrlock.h 2006-06-01 20:51:25.000000000 -0700 @@ -28,7 +28,7 @@ typedef struct { } mrlock_t; #define mrinit(mrp, name) \ - ( (mrp)->mr_writer = 0, init_rwsem(&(mrp)->mr_lock) ) + do { (mrp)->mr_writer = 0; init_rwsem(&(mrp)->mr_lock); } while (0) #define mrlock_init(mrp, t,n,s) mrinit(mrp, n) #define mrfree(mrp) do { } while (0) #define mraccess(mrp) mraccessf(mrp, 0) _