When manually disabling queueing via 'disablequeueing map $map'
the queueing status in 'show maps status' is not updated.

Signed-off-by: Hannes Reinecke <h...@suse.de>
---
 libmultipath/print.c      | 6 ++++--
 multipathd/cli_handlers.c | 4 ++--
 multipathd/main.c         | 2 +-
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/libmultipath/print.c b/libmultipath/print.c
index 76bda93..96a1680 100644
--- a/libmultipath/print.c
+++ b/libmultipath/print.c
@@ -174,12 +174,14 @@ snprint_queueing (char * buff, size_t len, struct 
multipath * mpp)
        else if (mpp->no_path_retry == NO_PATH_RETRY_UNDEF)
                return snprintf(buff, len, "-");
        else if (mpp->no_path_retry > 0) {
-               if (mpp->retry_tick)
+               if (mpp->retry_tick > 0)
                        return snprintf(buff, len, "%i sec",
                                        mpp->retry_tick);
-               else
+               else if (mpp->retry_tick == 0)
                        return snprintf(buff, len, "%i chk",
                                        mpp->no_path_retry);
+               else
+                       return snprintf(buff, len, "off");
        }
        return 0;
 }
diff --git a/multipathd/cli_handlers.c b/multipathd/cli_handlers.c
index 168b872..886a5fd 100644
--- a/multipathd/cli_handlers.c
+++ b/multipathd/cli_handlers.c
@@ -807,7 +807,7 @@ cli_disable_queueing(void *v, char **reply, int *len, void 
*data)
                return 1;
        }
 
-       mpp->retry_tick = 0;
+       mpp->retry_tick = -1;
        dm_queue_if_no_path(mpp->alias, 0);
        return 0;
 }
@@ -821,7 +821,7 @@ cli_disable_all_queueing(void *v, char **reply, int *len, 
void *data)
 
        condlog(2, "disable queueing (operator)");
        vector_foreach_slot(vecs->mpvec, mpp, i) {
-               mpp->retry_tick = 0;
+               mpp->retry_tick = -1;
                dm_queue_if_no_path(mpp->alias, 0);
        }
        return 0;
diff --git a/multipathd/main.c b/multipathd/main.c
index 626f703..d9c0b8b 100644
--- a/multipathd/main.c
+++ b/multipathd/main.c
@@ -1200,7 +1200,7 @@ retry_count_tick(vector mpvec)
        unsigned int i;
 
        vector_foreach_slot (mpvec, mpp, i) {
-               if (mpp->retry_tick) {
+               if (mpp->retry_tick > 0) {
                        mpp->stat_total_queueing_time++;
                        condlog(4, "%s: Retrying.. No active path", mpp->alias);
                        if(--mpp->retry_tick == 0) {
-- 
2.6.6

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel

Reply via email to