diff --git a/NEWS.md b/NEWS.md index 03f337739..1fd4766ab 100644 --- a/NEWS.md +++ b/NEWS.md @@ -9,6 +9,10 @@ release. These bug fixes will be tracked in stable branches. See [README.md](README.md) for additional information. +## multipath-tools 0.14.3, 2026/02 + +* Fix boot failures with multipath introduced in 0.14.1. Commit 01cc89c. + ## multipath-tools 0.14.2, 2026/01 ### Bug fixes diff --git a/libmpathpersist/mpath_persistent_reserve_out.3 b/libmpathpersist/mpath_persistent_reserve_out.3 index 3dbeae1f1..ab1f923e1 100644 --- a/libmpathpersist/mpath_persistent_reserve_out.3 +++ b/libmpathpersist/mpath_persistent_reserve_out.3 @@ -6,7 +6,7 @@ .\" Update the date below if you make any significant change. .\" ---------------------------------------------------------------------------- . -.TH MPATH_PERSISTENT_RESERVE_OUT 3 2024-02-09 Linux +.TH MPATH_PERSISTENT_RESERVE_OUT 3 2026-02-02 Linux . . .\" ---------------------------------------------------------------------------- @@ -22,7 +22,7 @@ mpath_persistent_reserve_out \- send PROUT command to DM device . .B #include .P -.BI "int mpath_persistent_reserve_out" "(int fd, int rq_servact, struct prin_resp *resp, int noisy, int verbose)" +.BI "int mpath_persistent_reserve_out" "(int fd, int rq_servact, int rq_scope, unsigned int rq_type, struct prout_param_descriptor *paramp, int noisy, int verbose)" .P . . diff --git a/libmultipath/configure.c b/libmultipath/configure.c index a713ddc45..a954ca311 100644 --- a/libmultipath/configure.c +++ b/libmultipath/configure.c @@ -1108,22 +1108,12 @@ int coalesce_paths (struct vectors *vecs, vector mpvec, char *refwwid, continue; /* 3. if path has disappeared */ - if (pp1->state == PATH_REMOVED) { + if (pp1->state == PATH_REMOVED || pp1->initialized == INIT_REMOVED) { orphan_path(pp1, "path removed"); continue; } - /* - * 4. The path wasn't found in path_discovery. It only exists - * in an old map. - */ - if (pp1->initialized == INIT_PARTIAL || - pp1->initialized == INIT_REMOVED) { - orphan_path(pp1, "path not found"); - continue; - } - - /* 5. path is out of scope */ + /* 4. path is out of scope */ if (refwwid && strncmp(pp1->wwid, refwwid, WWID_SIZE - 1)) continue; diff --git a/libmultipath/structs_vec.c b/libmultipath/structs_vec.c index 3e63e9c3f..9384de017 100644 --- a/libmultipath/structs_vec.c +++ b/libmultipath/structs_vec.c @@ -315,8 +315,7 @@ int adopt_paths(vector pathvec, struct multipath *mpp, pp->dev, mpp->alias); continue; } - if (pp->initialized == INIT_REMOVED || - pp->initialized == INIT_PARTIAL) + if (pp->initialized == INIT_REMOVED) continue; if (mpp->queue_mode == QUEUE_MODE_RQ && pp->bus == SYSFS_BUS_NVME && diff --git a/libmultipath/version.h b/libmultipath/version.h index fa2650b37..8d25955ce 100644 --- a/libmultipath/version.h +++ b/libmultipath/version.h @@ -11,9 +11,9 @@ #ifndef VERSION_H_INCLUDED #define VERSION_H_INCLUDED -#define VERSION_CODE 0x000E02 +#define VERSION_CODE 0x000E03 /* MMDDYY, in hex */ -#define DATE_CODE 0x011D1A +#define DATE_CODE 0x02051A #define PROG "multipath-tools"