<div dir="ltr">Merged.<div>Thanks.</div></div><br><div class="gmail_quote"><div dir="ltr">On Fri, Nov 2, 2018 at 1:23 PM Martin Wilck <<a href="mailto:mwilck@suse.com">mwilck@suse.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Christophe,<br>
<br>
This is v5 of my "checkers overhaul" series. Changed wrt v4<br>
are 03/22, 11/22, and 21/22. I re-post the whole series to<br>
avoid confusion.<br>
<br>
This series starts with a few minor fixes and then attempts<br>
an overhaul of the checker code.<br>
<br>
First, there's a block of patches to get rid of the "message"<br>
char array in struct checker, replacing it with an integer.<br>
This topic had been touched in recent discussion between Ben<br>
and myself. You may want to collaps the patches in this block<br>
(03/21-11/21) into one when commiting; compilation errors will<br>
arise if only part of them is a applied.<br>
<br>
The next larger block fixes problems with checkers that try<br>
to check unsupported devices. It's an interesting experience<br>
to configure wrong checkers for the existing devices and see<br>
what happens. With these patches, paths won't be falsely<br>
teared down any more in such situations.<br>
<br>
The last patch cleans up the checker data structure by splitting<br>
it into a "checker class" and the path "checker instance".<br>
<br>
There's more work to do in this area, but this is a start.<br>
<br>
----<br>
changes v4->v5<br>
- 03/21: made checker_message() const again, as 22/22 is gone.<br>
Got rid of the static buffer in checker_message() by simply returning<br>
the constant message strings, as suggested by Ben in his review of v4.<br>
This implies printf format changes in callers; changed format in get_state().<br>
- 11/21: Changed printf format in check_path() (see above).<br>
- 21/22: rebased, no actual changes (kept Ben's Reviewed-by).<br>
- 22/22: dropped, obsolete.<br>
<br>
Changes v3->v4:<br>
- 03/22: renamed CHECKER_LAST_GENERIC_MSGID -> CHECKER_GENERIC_MSGTABLE_SIZE<br>
(Ben).<br>
- 12/22: rebased on top of changed 03/22.<br>
<br>
Changes v2->v3:<br>
- 03/22: fixed one minor issue mentioned by Ben;<br>
reverted the const-ification of checker_message(),<br>
as it will be reverted in 22/22 anyway.<br>
- 13/22: fix clariion checker semantics (Ben).<br>
- 21/22: rebased on top of updated 03/22.<br>
- 22/22: fix thread-safety issue from 03/22 (Ben).<br>
<br>
Changes v1->v2:<br>
- 11/22: rebased on top of "various multipath-tools patches" series<br>
<br>
Martin Wilck (21):<br>
libmultipath: fix use of uninitialized memory in write()<br>
libmultipath: fix memory leaks from scandir() use<br>
libmultipath/checkers: replace message by msgid<br>
libmultipath/checkers: cciss_tur: use message id<br>
libmultipath/checkers: directio: use message id<br>
libmultipath/checkers: emc_clariion: use message id<br>
libmultipath/checkers: hp_sw: use message id<br>
libmultipath/checkers: rdac: use message id<br>
libmultipath/checkers: readsector0: use message id<br>
libmultipath/checkers: tur: use message id<br>
multipathd: improve checker message logging<br>
libmultipath/checkers: support unsupported paths<br>
libmultipath: clariion checker: leave unsupported paths alone<br>
libmultipath: hp_sw checker: leave unsupported paths alone<br>
libmultipath: rdac checker: leave unsupported paths alone<br>
libmultipath: tur checker: leave unsupported paths alone<br>
libmultipath: pathinfo: don't blank wwid if checker fails<br>
multipathd: check_path: improve logging for "unusable path" case<br>
libmultipath: coalesce_paths: improve logging of orphaned paths<br>
libmultipath: sync_map_state: log failing paths<br>
libmultipath/checkers: cleanup class/instance model<br>
<br>
libmultipath/checkers.c | 187 +++++++++++++++++----------<br>
libmultipath/checkers.h | 69 ++++++----<br>
libmultipath/checkers/cciss_tur.c | 13 +-<br>
libmultipath/checkers/directio.c | 29 +++--<br>
libmultipath/checkers/emc_clariion.c | 114 +++++++++++++---<br>
libmultipath/checkers/hp_sw.c | 39 +++---<br>
libmultipath/checkers/rdac.c | 92 +++++++++----<br>
libmultipath/checkers/readsector0.c | 7 +-<br>
libmultipath/checkers/tur.c | 60 +++++----<br>
libmultipath/config.c | 10 +-<br>
libmultipath/configure.c | 10 +-<br>
libmultipath/discovery.c | 11 +-<br>
libmultipath/foreign.c | 5 +-<br>
libmultipath/foreign/nvme.c | 6 +-<br>
libmultipath/print.c | 2 +-<br>
libmultipath/propsel.c | 19 +--<br>
libmultipath/structs_vec.c | 5 +-<br>
libmultipath/sysfs.c | 5 +-<br>
libmultipath/util.c | 9 ++<br>
libmultipath/util.h | 9 ++<br>
multipathd/main.c | 38 ++++--<br>
21 files changed, 497 insertions(+), 242 deletions(-)<br>
<br>
-- <br>
2.19.1<br>
<br>
</blockquote></div>