[dm-devel] [PATCH v2 7/9] libmultipath: deprecate file and directory config options
Benjamin Marzinski
bmarzins at redhat.com
Thu Nov 11 15:36:14 UTC 2021
On Thu, Nov 11, 2021 at 11:44:44AM +0000, Martin Wilck wrote:
> On Wed, 2021-11-10 at 19:06 -0600, Benjamin Marzinski wrote:
> > Having multipath able to select pathnames for the files and
> > directories
> > it needs causes unnecessary maintainer headaches. Mark these as
> > deprecated, but still support them for now.
> >
> > Signed-off-by: Benjamin Marzinski <bmarzins at redhat.com>
>
> I would have preferred to start ignoring these options right away
> (spitting out warnings). After all, this is upstream, we don't have to
> take care of long-term-support users (distros can keep the old behavior
> if they want), and experience shows that depreciation warnings are
> ignored until the deprecated feature is actually removed. But if you
> prefer doing it this way, fine.
>
> Let's agree to remove these options soon, i.e. with the official
> release after the next one (0.8.9, presumably).
Sure. Thanks.
>
> > ---
> > libmultipath/dict.c | 40 +++++++++++++++++++++++++++++-------
> > --
> > multipath/multipath.conf.5 | 5 +++++
> > 2 files changed, 36 insertions(+), 9 deletions(-)
> >
> > diff --git a/libmultipath/dict.c b/libmultipath/dict.c
> > index 149d3348..1b4e1106 100644
> > --- a/libmultipath/dict.c
> > +++ b/libmultipath/dict.c
> > @@ -268,6 +268,15 @@ def_ ## option ## _handler (struct config *conf,
> > vector strvec, \
> > return function (strvec, &conf->option, file,
> > line_nr); \
> > }
> >
> > +#define declare_def_warn_handler(option,
> > function) \
> > +static
> > int \
> > +def_ ## option ## _handler (struct config *conf, vector
> > strvec, \
> > + const char *file, int
> > line_nr) \
> > +{
> > \
> > + condlog(2, "%s line %d, \"" #option "\" is deprecated and
> > will be disabled in a future release", file,
> > line_nr); \
> > + return function (strvec, &conf->option, file,
> > line_nr); \
> > +}
> > +
> > #define declare_def_range_handler(option, minval,
> > maxval) \
> > static
> > int \
> > def_ ## option ## _handler (struct config *conf, vector
> > strvec, \
> > @@ -284,6 +293,17 @@ snprint_def_ ## option (struct config *conf,
> > struct strbuf *buff, \
> > return function(buff, conf-
> > >option); \
> > }
> >
> > +#define declare_def_snprint_non_defstr(option, function,
> > value) \
> > +static
> > int \
> > +snprint_def_ ## option (struct config *conf, struct strbuf
> > *buff, \
> > + const void
> > *data) \
> > +{
> > \
> > + static const char *s =
> > value; \
> > + if (!conf->option || strcmp(conf->option, s) ==
> > 0) \
> > + return
> > 0; \
> > + return function(buff, conf-
> > >option); \
> > +}
>
> I'd actually print the value here, even if it's empty or equal to the
> default. That would be helpful in the future too, when these options
> are removed. This way customers can verify the settings multipathd is
> using by default.
Sure.
-Ben
> Regards,
> Martin
>
>
More information about the dm-devel
mailing list