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 <guanjunxiong@xxxxxxxxxx> 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 <mwilck@xxxxxxxx> > Reviewed-by: Hannes Reinecke <hare@xxxxxxx> > --- > 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 dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel