[PATCH 1/2] multipathd: the local path change is not considered

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Brian Bunker <brian@xxxxxxxxxxxxxxx>

When update_prio is called, there is a check to see if the local path
has a priority change. Then all the remaining paths are simliarly
checked.

Only the result of paths not matching the local path are
considered in the calculation of 'changed'. In the case of failed paths
becoming again available this can lead to multipath not reloading.

The result will look like this:
3624a93703c9f34490f6140a100011010 dm-2 PURE,FlashArray
size=3.0T features='1 retain_attached_hw_handler' hwhandler='1 alua' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| |- 1:0:0:1  sdb 8:16  active ready running
| |- 9:0:0:1  sdc 8:32  active ready running
| |- 11:0:0:1 sdd 8:48  active ready running
| `- 13:0:0:1 sdh 8:112 active ready running
`-+- policy='service-time 0' prio=50 status=enabled
  |- 8:0:0:1  sde 8:64  active ready running
  |- 10:0:0:1 sdf 8:80  active ready running
  |- 12:0:0:1 sdg 8:96  active ready running
  `- 14:0:0:1 sdi 8:128 active ready running

Where the path's priorities are updated, but the path group is not
activated.

Fixes: 6ccd7b8 ("multipathd: only refresh priorities in update_prio()")
Signed-off-by: Brian Bunker <brian@xxxxxxxxxxxxxxx>
Signed-off-by: Seamus Connor <sconnor@xxxxxxxxxxxxxxx>
Signed-off-by: Krisha Kant <krishna.kant@xxxxxxxxxxxxxxx>
Signed-off-by: Martin Wilck <mwilck@xxxxxxxx>
---
 multipathd/main.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/multipathd/main.c b/multipathd/main.c
index fbc3f8d..2cddd85 100644
--- a/multipathd/main.c
+++ b/multipathd/main.c
@@ -2115,7 +2115,9 @@ int update_prio(struct path *pp, int refresh_all)
 		pthread_cleanup_pop(1);
 	}
 
-	if (pp->priority == oldpriority && !refresh_all)
+	if (pp->priority != oldpriority)
+		changed = 1;
+	else if (!refresh_all)
 		return 0;
 
 	vector_foreach_slot (pp->mpp->pg, pgp, i) {
-- 
2.43.0





[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux