[dm-devel] [PATCH v2 46/48] multipathd: remove INIT_PARTIAL paths that aren't in a multipath device
mwilck at suse.com
mwilck at suse.com
Thu Nov 18 22:58:38 UTC 2021
From: Benjamin Marzinski <bmarzins at redhat.com>
The only reason multipath is monitoring an INIT_PARTIAL path is because
it was discovered in a multipath device table. If it stops being part
of a multipath device before it gets fully initialized, drop it.
Signed-off-by: Benjamin Marzinski <bmarzins at redhat.com>
Reviewed-by: Martin Wilck <mwilck at suse.com>
Signed-off-by: Martin Wilck <mwilck at suse.com>
---
libmultipath/structs_vec.c | 22 ++++++++++++++--------
1 file changed, 14 insertions(+), 8 deletions(-)
diff --git a/libmultipath/structs_vec.c b/libmultipath/structs_vec.c
index 9b6407b..df5709a 100644
--- a/libmultipath/structs_vec.c
+++ b/libmultipath/structs_vec.c
@@ -308,9 +308,12 @@ void orphan_paths(vector pathvec, struct multipath *mpp, const char *reason)
vector_foreach_slot (pathvec, pp, i) {
if (pp->mpp == mpp) {
- if (pp->initialized == INIT_REMOVED) {
- condlog(3, "%s: freeing path in removed state",
- pp->dev);
+ if (pp->initialized == INIT_REMOVED ||
+ pp->initialized == INIT_PARTIAL) {
+ condlog(3, "%s: freeing path in %s state",
+ pp->dev,
+ pp->initialized == INIT_REMOVED ?
+ "removed" : "partial");
vector_del_slot(pathvec, i--);
free_path(pp);
} else
@@ -469,11 +472,14 @@ static void check_removed_paths(const struct multipath *mpp, vector pathvec)
int i;
vector_foreach_slot(pathvec, pp, i) {
- if (pp->initialized != INIT_REMOVED || pp->mpp != mpp)
- continue;
- if (!find_devt_in_pathgroups(mpp, pp->dev_t)) {
- condlog(2, "%s: %s: freeing path in removed state",
- __func__, pp->dev);
+ if (pp->mpp == mpp &&
+ (pp->initialized == INIT_REMOVED ||
+ pp->initialized == INIT_PARTIAL) &&
+ !find_devt_in_pathgroups(mpp, pp->dev_t)) {
+ condlog(2, "%s: %s: freeing path in %s state",
+ __func__, pp->dev,
+ pp->initialized == INIT_REMOVED ?
+ "removed" : "partial");
vector_del_slot(pathvec, i--);
free_path(pp);
}
--
2.33.1
More information about the dm-devel
mailing list