@@ -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;
}
@@ -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;
@@ -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) {
When manually disabling queueing via 'disablequeueing map $map' the queueing status in 'show maps status' is not updated. Signed-off-by: Hannes Reinecke <hare@suse.de> --- libmultipath/print.c | 6 ++++-- multipathd/cli_handlers.c | 4 ++-- multipathd/main.c | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-)