summaryrefslogtreecommitdiff
path: root/libdm/libdevmapper.h
diff options
context:
space:
mode:
authorBryn M. Reeves <bmr@redhat.com>2016-07-07 21:28:35 +0100
committerBryn M. Reeves <bmr@redhat.com>2016-07-08 11:14:22 +0100
commit5e06b33c51e2b264ad8a48b61f18bf3bff37c992 (patch)
tree71a65d4b9e8290c6a7237403dc95eaffe44bc174 /libdm/libdevmapper.h
parent6233bcf52d98d9d0a3c87b22cb7700521b5358a2 (diff)
downloadlvm2-5e06b33c51e2b264ad8a48b61f18bf3bff37c992.tar.gz
libdm: enclose dm_stats_walk_do/while() body in do..while
The call to dm_stats_walk_start() before the do statement makes dm_stats_walk_do() behave inconsistently depending on context; wrap them in an additional do { } while (0) so that the macro always expands to a valid statement.
Diffstat (limited to 'libdm/libdevmapper.h')
-rw-r--r--libdm/libdevmapper.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/libdm/libdevmapper.h b/libdm/libdevmapper.h
index 415928ccf..ec644260c 100644
--- a/libdm/libdevmapper.h
+++ b/libdm/libdevmapper.h
@@ -1146,15 +1146,17 @@ for (dm_stats_walk_init((dms), DM_STATS_WALK_GROUP), \
* empty.
*/
#define dm_stats_walk_do(dms) \
-dm_stats_walk_start((dms)); \
-do
+do { \
+ dm_stats_walk_start((dms)); \
+ do
/*
* Start a 'while' style loop or end a 'do..while' loop iterating over the
* regions contained in dm_stats handle 'dms'.
*/
#define dm_stats_walk_while(dms) \
-while(!dm_stats_walk_end((dms)))
+ while(!dm_stats_walk_end((dms))); \
+} while (0)
/*
* Cursor relative property methods