Re: [PATCH] dracut: Verify multipath config_dir option

Martin Wilck <mwilck-IBi9RG/[email protected]>
Newsgroups org.kernel.vger.initramfs
Message-ID <[email protected]>
On Tue, 2020-01-21 at 17:38 +0530, Milan P. Gandhi wrote:
> The 90multipath/module-setup.sh file currently does not check the
> dm-multipath config_dir option. This option in multipath.conf file is
> used to specify a custom directory/path that contains the multipath
> configuration files. It's default value is /etc/multipath/conf.d
> 
> Currently install function of module-setup.sh has hardcoded the above
> path, but users could change it with config_dir option. So, adding a
> command to get the directory specified with config_dir option and add
> these configuration files to the initial ram disk image.
> 
> Signed-off-by: Milan P. Gandhi <[email protected]>
> ---
>  modules.d/90multipath/module-setup.sh | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/modules.d/90multipath/module-setup.sh
> b/modules.d/90multipath/module-setup.sh
> index 1f6a55ec..f7c521c1 100755
> --- a/modules.d/90multipath/module-setup.sh
> +++ b/modules.d/90multipath/module-setup.sh
> @@ -78,6 +78,9 @@ install() {
>          }
>      }
>  
> +    # Include multipath configuration files from path specified with
> config_dir
> +    config_dir=`/usr/sbin/multipath -t|grep -i config_dir|awk
> '{print $2}'|sed -e 's/^"//' -e 's/"$//'`/*

No need to use 'grep -i', multipath configuration directives are case-
sensitive. At least one member of that grep|awk|sed pipe can be
dropped. Actually, all of them, for example like this:

while read _k _v; do 
   if [[ "$_k" = config_dir ]]; then 
       _v=${_v#\"}
       config_dir=${_v%\"}
   fi
done < <(multipath -t)

The path (/usr/sbin/multipath) is inconsistent with what we use in
multipathd.service (/sbin/multipath). I'm not against changing this to
/usr, but we should be consistent.

And: fall back to /etc/multipath/conf.d if the command fails for some
reason?

Martin


> +
>      inst_multiple -o  \
>          dmsetup \
>          kpartx \
> @@ -90,7 +93,7 @@ install() {
>          /etc/xdrdevices.conf \
>          /etc/multipath.conf \
>          /etc/multipath/* \
> -        /etc/multipath/conf.d/*
> +        $config_dir
>  
>      [[ $hostonly ]] && [[ $hostonly_mode = "strict" ]] && {
>          for_each_host_dev_and_slaves_all add_hostonly_mpath_conf
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.