This patch combined with PATCH 3/4 looks more elegant than my previous patch
and it works to fix the multipathd hotplug problem for NoF.
Thanks.

Reviewed-by: Guan Junxiong <[email protected]>

On 2017/7/14 19:32, Martin Wilck wrote:
> This function is broken. Not all devices that matter for multipathd
> follow the block/$DEVICE/$PARTITION convention (example: NVME)
> 
> Signed-off-by: Martin Wilck <[email protected]>
> Reviewed-by: Hannes Reinecke <[email protected]>
> ---
>  libmultipath/uevent.c | 25 -------------------------
>  1 file changed, 25 deletions(-)
> 
> diff --git a/libmultipath/uevent.c b/libmultipath/uevent.c
> index 4fbd1dfb..b688ca03 100644
> --- a/libmultipath/uevent.c
> +++ b/libmultipath/uevent.c
> @@ -143,36 +143,11 @@ uevent_need_merge(void)
>       return need_merge;
>  }
>  
> -static bool
> -uevent_can_discard_by_devpath(const char *devpath)
> -{
> -     static const char BLOCK[] = "/block/";
> -     const char *tmp = strstr(devpath, BLOCK);
> -
> -     if (tmp == NULL) {
> -             condlog(4, "no /block/ in '%s'", devpath);
> -             return true;
> -     }
> -     tmp += sizeof(BLOCK) - 1;
> -     if (*tmp == '\0')
> -             /* just ".../block/" - discard */
> -             return true;
> -     /*
> -      * If there are more path elements after ".../block/xyz",
> -      * it's a partition - discard it; but don't discard ".../block/sda/".
> -      */
> -     tmp = strchr(tmp, '/');
> -     return tmp != NULL && *(tmp + 1) != '\0';
> -}
> -
>  bool
>  uevent_can_discard(struct uevent *uev)
>  {
>       struct config * conf;
>  
> -     if (uevent_can_discard_by_devpath(uev->devpath))
> -             return true;
> -
>       /*
>        * do not filter dm devices by devnode
>        */
> 

--
dm-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/dm-devel

Reply via email to