Re: [PATCH 4/4] libmultipath: fix mpcontext initialization

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2019-09-10 at 17:39 -0500, Benjamin Marzinski wrote:
> If a path is discovered before there is a multipath device for it to
> belong to, the checker will not have its mpcontext initialized, even
> if
> that path later belongs to a multipath device. A checker's mpcontext
> is
> only set when the checker is selected, and is set to NULL if there is
> no
> multipath device associated with the path. This only impacts the emc
> checker. However, it makes the emc checker unable to determine if a
> passive path is connected to an inactive snapshot or not.
> 
> This can be solved by adding a new checker class function, mp_init().
> This is called when the checker is first initialized, and whenever
> the
> checker is called, if the checker's mpcontext hasn't been
> initialized.
> 
> Signed-off-by: Benjamin Marzinski <bmarzins@xxxxxxxxxx>
> ---
>  libmultipath/checkers.c              | 29
> ++++++++++++++++++++++++++--
>  libmultipath/checkers.h              |  1 +
>  libmultipath/checkers/cciss_tur.c    |  5 +++++
>  libmultipath/checkers/directio.c     |  5 +++++
>  libmultipath/checkers/emc_clariion.c |  7 +++++++
>  libmultipath/checkers/hp_sw.c        |  5 +++++
>  libmultipath/checkers/rdac.c         |  5 +++++
>  libmultipath/checkers/readsector0.c  |  5 +++++
>  libmultipath/checkers/tur.c          |  5 +++++
>  libmultipath/discovery.c             |  2 ++
>  10 files changed, 67 insertions(+), 2 deletions(-)
> 

I see the problem and agree the solution is correct. But I'd prefer if
the mp_init() method was optional and, if not defined in the
libcheckX.so, would simply be set to NULL. So you wouldn't need to
define empty methods for all checkers except emc. 

checker_mp_init() checks for mp_init() being non-NULL anyway.

Thanks,
Martin


--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/dm-devel



[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux