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