Re: [PATCH 3/6] libmultipath: fix removing device after failed creation

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

 



On Fri, 2024-11-15 at 18:22 -0500, Benjamin Marzinski wrote:
> dm_flush_nap_nosync() only removes a device if it has a multipath
> table.
> On failed removes, there is no table, so this function does nothing.
> Instead, if libmp_mapinfo() returns DMP_EMPTY, then there is an empty
> map,
> and it is removed using dm_device_remove().
> 
> Also, since there are no longer any callers of dm_flush_map_nosync(),
> remove it.
> 
> Signed-off-by: Benjamin Marzinski <bmarzins@xxxxxxxxxx>
> ---
>  libmultipath/devmapper.c | 7 +++++--
>  libmultipath/devmapper.h | 1 -
>  2 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/libmultipath/devmapper.c b/libmultipath/devmapper.c
> index b718dccf..842e7c80 100644
> --- a/libmultipath/devmapper.c
> +++ b/libmultipath/devmapper.c
> @@ -557,9 +557,12 @@ int dm_addmap_create (struct multipath *mpp,
> char * params)
>  		 * Failing the second part leaves an empty map.
> Clean it up.
>  		 */
>  		err = errno;
> -		if (dm_map_present(mpp->alias)) {
> +		if (libmp_mapinfo(DM_MAP_BY_NAME |
> MAPINFO_MPATH_ONLY |
> +				  MAPINFO_CHECK_UUID,
> +				(mapid_t) { .str = mpp->alias },
> +				(mapinfo_t) { .uuid = NULL }) ==
> DMP_EMPTY) {
>  			condlog(3, "%s: failed to load map (a path
> might be in use)", mpp->alias);

This error message seems wrong for emtpy tables.

Martin







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

  Powered by Linux