Date: Tue, 21 Dec 2010 21:59:21 +0000 (UTC) From: Pawel Jakub Dawidek <pjd@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r216626 - head/sys/sys Message-ID: <201012212159.oBLLxLKA076603@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: pjd Date: Tue Dec 21 21:59:21 2010 New Revision: 216626 URL: http://svn.freebsd.org/changeset/base/216626 Log: Close body of the VFS_UNLOCK_GIANT() macro into do { } while (0) loop, so it can be used in code like this: if (cond) VFS_UNLOCK_GIANT(vfslocked); else ; /* Do something else. */ Before the change, compiler couldn't decide on its own if else should be applied to the 'if (cond)' or to the if statement inside VFS_UNLOCK_GIANT() macro. Modified: head/sys/sys/mount.h Modified: head/sys/sys/mount.h ============================================================================== --- head/sys/sys/mount.h Tue Dec 21 21:32:17 2010 (r216625) +++ head/sys/sys/mount.h Tue Dec 21 21:59:21 2010 (r216626) @@ -644,7 +644,11 @@ vfs_statfs_t __vfs_statfs; _locked = 0; \ _locked; \ }) -#define VFS_UNLOCK_GIANT(locked) if ((locked)) mtx_unlock(&Giant); +#define VFS_UNLOCK_GIANT(locked) do \ +{ \ + if ((locked)) \ + mtx_unlock(&Giant); \ +} while (0) #define VFS_ASSERT_GIANT(MP) do \ { \ struct mount *_mp; \
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201012212159.oBLLxLKA076603>