9ae3e98286
Add 0110-libmultipath-keep-track-of-queueing-state-in-feature.patch Add 0111-libmultipath-export-partmap_in_use.patch Add 0112-libmultipath-change-flush_on_last_del-to-fix-a-multi.patch Add 0113-libmultipath-pad-dev_loss_tmo-to-avoid-race-with-no_.patch * Fixes RHEL-30272 Add 0114-libmultipath-remove-pathgroup-wildcard-options.patch Add 0115-libmultipath-print-all-values-in-snprint_failback.patch Add 0116-multipathd-Stop-double-counting-map-failures-for-no_.patch Add 0117-multipath-tools-man-pages-add-missing-multipathd-com.patch Add 0118-libmultipath-change-the-vend-prod-rev-printing.patch Add 0119-multipath-tools-man-pages-Add-format-wildcard-descri.patch * Fixes RHEL-8304 Resolves: RHEL-8304 Resolves: RHEL-30272
35 lines
1.3 KiB
Diff
35 lines
1.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Benjamin Marzinski <bmarzins@redhat.com>
|
|
Date: Thu, 9 May 2024 12:58:11 -0400
|
|
Subject: [PATCH] multipathd: Stop double counting map failures for
|
|
no_path_retry > 0
|
|
|
|
If no_path_retry was greater than 0, multipathd was counting a map
|
|
failure when recovery mode was entered, and again when queueing was
|
|
disabled. The first one is incorrect, since the map is still queueing.
|
|
|
|
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
|
---
|
|
libmultipath/structs_vec.c | 5 ++++-
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/libmultipath/structs_vec.c b/libmultipath/structs_vec.c
|
|
index 56915e96..b8e304e0 100644
|
|
--- a/libmultipath/structs_vec.c
|
|
+++ b/libmultipath/structs_vec.c
|
|
@@ -781,10 +781,13 @@ int verify_paths(struct multipath *mpp)
|
|
void update_queue_mode_del_path(struct multipath *mpp)
|
|
{
|
|
int active = count_active_paths(mpp);
|
|
+ bool is_queueing = mpp->features &&
|
|
+ strstr(mpp->features, "queue_if_no_path");
|
|
|
|
if (active == 0) {
|
|
enter_recovery_mode(mpp);
|
|
- if (mpp->no_path_retry != NO_PATH_RETRY_QUEUE)
|
|
+ if (mpp->no_path_retry == NO_PATH_RETRY_FAIL ||
|
|
+ (mpp->no_path_retry == NO_PATH_RETRY_UNDEF && !is_queueing))
|
|
mpp->stat_map_failures++;
|
|
}
|
|
condlog(2, "%s: remaining active paths: %d", mpp->alias, active);
|