This function is broken. Not all devices that matter for multipathd
follow the block/$DEVICE/$PARTITION convention (example: NVME)

Signed-off-by: Martin Wilck <mwi...@suse.com>
Reviewed-by: Hannes Reinecke <h...@suse.de>
Acked-by: Benjamin Marzinski <bmarz...@redhat.com>
Reviewed-by: "Schremmer, Steven" <steve.schrem...@netapp.com>
Reviewed-by: Guan Junxiong <guanjunxi...@huawei.com>
---
 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
         */
-- 
2.13.2

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

Reply via email to