On Fri, Sep 24, 2021 at 10:44:46PM +0200, Xose Vazquez Perez wrote: > On 9/21/21 01:21, Benjamin Marzinski wrote: > > >This patchset is supposed to replace Martin's > > > >multipathd: add "force_reconfigure" option > > > >patch from his uxlsnr overhaul patchset. It also makes the default > >reconfigure be a weak reconfigure, but instead of adding a configuration > >option to control this, it adds a new multipathd command, > >"reconfigure all", to do a full reconfigure. The HUP signal is left > >doing only weak reconfigures. > >In order to keep from having two states that are handled nearly > >identically, the code adds an extra variable to track the type of > >configuration that was selected, but this could easily be switch to > >use a new DAEMON_CONFIGURE_ALL state instead. > >The final patch, that added the new command, is meant to apply on top of > >Martin's changed client handler code. I can send one that works with the > >current client handler code, if people would rather review that. > > This change is going to affect some places, raw search: Yes. I specifically broke the code that actually changes how multipathd operates from a user' point of view into a seperate patch (4/4) because distributions might need to revert in, if they want to pull in recent upstream changes, but don't what this kind of change in multipathd's behavior. I admit, this patchset needs to include documentation to mention the changed behavior. I'll add that. But I'm not sure what to make of the list below. I don't see any code in it that I didn't think about. We can disagree as to whether, for instance, dmmp_reconfig() should do a full or a weak reconfig. But without some more information, I'm not sure what you are asking of me. -Ben > $ git grep reconfigure > libdmmp/libdmmp.c: snprintf(cmd, _IPC_MAX_CMD_LEN, "%s", "reconfigure"); > libmultipath/configure.c: * If we are in this code path (startup or forced reconfigure), > libmultipath/foreign.h: * don't support it. "multipathd reconfigure" starts foreign device > libmultipath/foreign.h: * This is called if multipathd reconfigures itself. > multipath/main.c: p += snprintf(p, n, "reconfigure"); > multipathd/cli.c: r += add_key(keys, "reconfigure", RECONFIGURE, 0); > multipathd/cli_handlers.c:cli_reconfigure(void * v, char ** reply, int * len, void * data) > multipathd/cli_handlers.c: condlog(2, "reconfigure (operator)"); > multipathd/cli_handlers.h:int cli_reconfigure(void * v, char ** reply, int * len, void * data); > multipathd/main.c: condlog(2, "reconfigure (delayed)"); > multipathd/main.c: set_unlocked_handler_callback(RECONFIGURE, cli_reconfigure); > multipathd/main.c: condlog(2, "reconfigure (delayed)"); > multipathd/main.c:reconfigure (struct vectors * vecs) > multipathd/main.c: condlog(2, "reconfigure (signal)"); > multipathd/main.c: reconfigure(vecs); > multipathd/main.h:int reconfigure (struct vectors *); > multipathd/multipathd.8:happens, it will reconfigure the multipath map the path belongs to, so that this > multipathd/multipathd.8:.B reconfigure > multipathd/multipathd.service:ExecReload=/sbin/multipathd reconfigure > multipathd/uxlsnr.c: * do it once per reconfigure */ -- dm-devel mailing list dm-devel@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/dm-devel