Message ID | 1640223155-1678-4-git-send-email-bmarzins@redhat.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Delegated to: | christophe varoqui |
Headers | show |
Series | Don't enter recovery move over pending paths | expand |
diff --git a/libmultipath/structs_vec.c b/libmultipath/structs_vec.c index f1031f61..6c23df86 100644 --- a/libmultipath/structs_vec.c +++ b/libmultipath/structs_vec.c @@ -616,7 +616,7 @@ void set_no_path_retry(struct multipath *mpp) !mpp->in_recovery) dm_queue_if_no_path(mpp->alias, 1); leave_recovery_mode(mpp); - } else + } else if (pathcount(mpp, PATH_PENDING) == 0) enter_recovery_mode(mpp); break; }
set_no_path_retry() could make a multipath device enter recovery mode simply because its paths were still in the PATH_PENDING state. This is possible when a multipath device is first created. After commit 2e61b8fb [libmultipath (coverity): Revert "setup_map: wait for pending path checkers to finish"] it has become much more likely. To avoid this, don't enter recovery mode as long as there are some paths in PATH_PENDING. Since path's can only be in this state if they've never had their state checker finish, this change will only effect recently created devices, whose checker hasn't completed yet. Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> --- libmultipath/structs_vec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)