From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Benjamin Marzinski Date: Thu, 2 Jul 2020 19:07:02 -0500 Subject: [PATCH] libmultipath: make dm_flush_maps only return 0 on success dm_flush_maps() returned both 0 and 1 on error, depending on which part of the function it was in, but the caller was always treating 0 as a success. Make dm_flush_maps() always return 1 on error and 0 on success. Reviewed-by: Martin Wilck Signed-off-by: Benjamin Marzinski --- libmultipath/devmapper.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libmultipath/devmapper.c b/libmultipath/devmapper.c index 24cc616a..4c86b6d4 100644 --- a/libmultipath/devmapper.c +++ b/libmultipath/devmapper.c @@ -1007,13 +1007,13 @@ dm_flush_map_nopaths(const char * mapname, int deferred_remove) int dm_flush_maps (int retries) { - int r = 0; + int r = 1; struct dm_task *dmt; struct dm_names *names; unsigned next = 0; if (!(dmt = libmp_dm_task_create (DM_DEVICE_LIST))) - return 0; + return r; dm_task_no_open_count(dmt); @@ -1026,6 +1026,7 @@ int dm_flush_maps (int retries) if (!names->dev) goto out; + r = 0; do { r |= dm_suspend_and_flush_map(names->name, retries); next = names->next; -- 2.17.2