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;                                              \
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to