Hello community, here is the log from the commit of package multipath-tools for openSUSE:Factory checked in at 2018-01-23 13:46:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/multipath-tools (Old) and /work/SRC/openSUSE:Factory/.multipath-tools.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "multipath-tools" Tue Jan 23 13:46:15 2018 rev:95 rq:567776 version:0.7.3+30+suse.6b5ed839 Changes: -------- --- /work/SRC/openSUSE:Factory/multipath-tools/multipath-tools.changes 2017-11-10 14:42:08.169188430 +0100 +++ /work/SRC/openSUSE:Factory/.multipath-tools.new/multipath-tools.changes 2018-01-23 13:46:18.736329622 +0100 @@ -1,0 +2,65 @@ +Fri Jan 19 18:09:52 UTC 2018 - [email protected] + +- Update to version 0.7.3+30+suse.6b5ed839: + * multipath.rules: temporary rule to obtain ID_WWN for NVMe + (bsc#1076828) + * libmultipath: ignore natively multipathed NVME devices + (bsc#1076828) + * multipath.rules: handle NVME devices (bsc#1076828) + * FIX "libmultipath: hwtable: multibus for NetApp NVMe-FC" + (bsc#1073319) + * libmultipath: increase path product_id/rev field size for NVMe + (bsc#1073319) + +------------------------------------------------------------------- +Tue Jan 16 14:18:15 UTC 2018 - [email protected] + +- Update to version 0.7.3+25+suse.7c9920e2: + * assemble_map: no newline at end of params string (bsc#1072253) + +------------------------------------------------------------------- +Thu Jan 11 12:38:41 UTC 2018 - [email protected] + +- Update to version 0.7.3+24+suse.703a61d5: + * multipathd.service: drop Before=lvm2-lvmetad.service (bsc#1070427) + * libmultipath: hwtable: multibus for NetApp NVMe-FC + (bsc#1073319) + * libmultipath/propsel: select ALUA prioritizer for RDAC arrays only + (bsc#1075539) + * libmultipath: get_vpd_sgio: support VPD 0xc9 (bsc#1055949) + * libmultipath: sgio_get_vpd: add page argument (bsc#1055949) + * libmultipath: fix return code of sgio_get_vpd() (bsc#1055949) + +------------------------------------------------------------------- +Fri Dec 22 20:19:40 UTC 2017 - [email protected] + +- Update to version 0.7.3+19+suse.0fd18bdd: + * multipathd.socket: add WantedBy=sockets.target (bsc#1072253) + +------------------------------------------------------------------- +Fri Dec 22 17:21:57 UTC 2017 - [email protected] + +- Update to version 0.7.3+18+suse.8c97f433: + * multipath -C: decrease log level (bsc#1072504) + +------------------------------------------------------------------- +Fri Dec 22 16:30:47 UTC 2017 - [email protected] + +- Update to version 0.7.3+17+suse.cac42e6f: + * test-kpartx: add test for mapping without UUID + (bsc#1074013) + +------------------------------------------------------------------- +Wed Nov 29 21:41:37 UTC 2017 - [email protected] + +- Update to version 0.7.3+15+suse.570d5938: + * kpartx.rules: fix by-id/scsi-* for user_friendly_names + (bsc#1066893) + +------------------------------------------------------------------- +Mon Nov 20 17:59:50 UTC 2017 - [email protected] + +- Update to version 0.7.3+14+suse.da06e7f3: + * libmultipath: fix return code of sysfs_get_timeout (bsc#1069037) + +------------------------------------------------------------------- Old: ---- multipath-tools-0.7.3+13+suse.db431514.tar.xz New: ---- multipath-tools-0.7.3+30+suse.6b5ed839.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ multipath-tools.spec ++++++ --- /var/tmp/diff_new_pack.xDyp5I/_old 2018-01-23 13:46:19.500293934 +0100 +++ /var/tmp/diff_new_pack.xDyp5I/_new 2018-01-23 13:46:19.500293934 +0100 @@ -1,7 +1,7 @@ # # spec file for package multipath-tools # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -97,7 +97,7 @@ Name: multipath-tools Url: http://christophe.varoqui.free.fr/ -Version: 0.7.3+13+suse.db431514 +Version: 0.7.3+30+suse.6b5ed839 Release: 0 Summary: Tools to Manage Multipathed Devices with the device-mapper License: GPL-2.0 ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.xDyp5I/_old 2018-01-23 13:46:19.548291692 +0100 +++ /var/tmp/diff_new_pack.xDyp5I/_new 2018-01-23 13:46:19.548291692 +0100 @@ -1,4 +1,4 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/openSUSE/multipath-tools.git</param> - <param name="changesrevision">db431514080f1479dcdf038a27214fd4a989c3d8</param></service></servicedata> \ No newline at end of file + <param name="changesrevision">6b5ed8398a5d3b35cdf674d8256d9390a632b763</param></service></servicedata> \ No newline at end of file ++++++ multipath-tools-0.7.3+13+suse.db431514.tar.xz -> multipath-tools-0.7.3+30+suse.6b5ed839.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/multipath-tools-0.7.3+13+suse.db431514/kpartx/dm-parts.rules new/multipath-tools-0.7.3+30+suse.6b5ed839/kpartx/dm-parts.rules --- old/multipath-tools-0.7.3+13+suse.db431514/kpartx/dm-parts.rules 2017-10-24 22:17:28.000000000 +0200 +++ new/multipath-tools-0.7.3+30+suse.6b5ed839/kpartx/dm-parts.rules 2018-01-19 19:08:38.000000000 +0100 @@ -31,8 +31,8 @@ IMPORT{program}=="kpartx_id %M %m $env{DM_UUID}" # DM_TYPE only has a reasonable value for partitions on multipath. -ENV{DM_UUID}=="*-mpath-*", ENV{DM_TYPE}=="?*" \ - SYMLINK+="disk/by-id/$env{DM_TYPE}-$env{DM_NAME}" +ENV{DM_UUID}=="*-mpath-*", ENV{DM_TYPE}=="?*", ENV{DM_SERIAL}=="?*" \ + SYMLINK+="disk/by-id/$env{DM_TYPE}-$env{DM_SERIAL}-part$env{DM_PART}" ENV{DM_WWN}=="?*", ENV{DM_PART}=="?*", \ SYMLINK+="disk/by-id/wwn-$env{DM_WWN}-part$env{DM_PART}" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/multipath-tools-0.7.3+13+suse.db431514/kpartx/kpartx_id new/multipath-tools-0.7.3+30+suse.6b5ed839/kpartx/kpartx_id --- old/multipath-tools-0.7.3+13+suse.db431514/kpartx/kpartx_id 2017-10-24 22:17:28.000000000 +0200 +++ new/multipath-tools-0.7.3+30+suse.6b5ed839/kpartx/kpartx_id 2018-01-19 19:08:38.000000000 +0100 @@ -42,6 +42,7 @@ dmuuid=${UUID#*-} dmtbl=${UUID%%-*} dmpart=${dmtbl#part} +dmserial= # kpartx types are 'part<num>' if [ "$dmpart" = "$dmtbl" ] ; then dmpart= @@ -59,10 +60,12 @@ case "$dmuuid" in mpath-*) dmdeps=$($DMSETUP deps -u $dmuuid) + dmserial=${dmuuid#mpath-} ;; esac elif [ "$dmtbl" = "mpath" ] ; then dmname="$dmuuid" + dmserial="$dmuuid" # We need the dependencies of the table to figure out the type dmdeps=$($DMSETUP deps -u $UUID) fi @@ -84,11 +87,14 @@ ;; *) echo "DM_TYPE=scsi" - echo "DM_WWN=0x${dmname#?}" + echo "DM_WWN=0x${dmserial#?}" ;; esac else echo "DM_TYPE=raid" fi +if [[ $dmserial ]]; then + echo "DM_SERIAL=$dmserial" +fi exit 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/multipath-tools-0.7.3+13+suse.db431514/kpartx/test-kpartx new/multipath-tools-0.7.3+30+suse.6b5ed839/kpartx/test-kpartx --- old/multipath-tools-0.7.3+13+suse.db431514/kpartx/test-kpartx 2017-10-24 22:17:28.000000000 +0200 +++ new/multipath-tools-0.7.3+30+suse.6b5ed839/kpartx/test-kpartx 2018-01-19 19:08:38.000000000 +0100 @@ -131,7 +131,7 @@ # They also serve as DM devices to test partition removal on those. TABLE="\ -0 $((SIZE/SECTSIZ-OFFS)) linear $DEV1 $OFFS +0 $((SIZE/SECTSIZ-OFFS)) linear $DEV1 $OFFS $((SIZE/SECTSIZ-OFFS)) $((SIZE/SECTSIZ-OFFS)) linear $DEV2 $OFFS" SPAN1=kpt @@ -142,9 +142,17 @@ dmsetup create $SPAN2 <<<"$TABLE" push_cleanup 'dmsetup remove -f $SPAN2' +# This is a non-kpartx pseudo "partition" mapping +USER1=user1 +push_cleanup 'dmsetup remove -f $USER1' +dmsetup create $USER1 <<EOF +0 $((SIZE/SECTSIZ-OFFS)) linear $DEV1 $OFFS +EOF + usleep $WAIT_US [[ -b /dev/mapper/$SPAN1 ]] [[ -b /dev/mapper/$SPAN2 ]] +[[ -b /dev/mapper/$USER1 ]] step "create vg on $LO3" # On the 3rd loop device, we create a VG and an LV @@ -290,6 +298,7 @@ # spans should not have been removed [[ -b /dev/mapper/$SPAN1 ]] [[ -b /dev/mapper/$SPAN2 ]] +[[ -b /dev/mapper/$USER1 ]] # LVs neither [[ -b /dev/mapper/$VG-$LV ]] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/multipath-tools-0.7.3+13+suse.db431514/libmultipath/config.c new/multipath-tools-0.7.3+30+suse.6b5ed839/libmultipath/config.c --- old/multipath-tools-0.7.3+13+suse.db431514/libmultipath/config.c 2017-10-24 22:17:28.000000000 +0200 +++ new/multipath-tools-0.7.3+30+suse.6b5ed839/libmultipath/config.c 2018-01-19 19:08:38.000000000 +0100 @@ -319,7 +319,7 @@ static int merge_hwe (struct hwentry * dst, struct hwentry * src) { - char id[SCSI_VENDOR_SIZE+SCSI_PRODUCT_SIZE]; + char id[SCSI_VENDOR_SIZE+PATH_PRODUCT_SIZE]; merge_str(vendor); merge_str(product); merge_str(revision); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/multipath-tools-0.7.3+13+suse.db431514/libmultipath/discovery.c new/multipath-tools-0.7.3+30+suse.6b5ed839/libmultipath/discovery.c --- old/multipath-tools-0.7.3+13+suse.db431514/libmultipath/discovery.c 2017-10-24 22:17:28.000000000 +0200 +++ new/multipath-tools-0.7.3+30+suse.6b5ed839/libmultipath/discovery.c 2018-01-19 19:08:38.000000000 +0100 @@ -276,7 +276,7 @@ } *timeout = t; - return 0; + return 1; } int @@ -837,7 +837,7 @@ #define DEFAULT_SGIO_LEN 254 static int -sgio_get_vpd (unsigned char * buff, int maxlen, int fd) +sgio_get_vpd (unsigned char * buff, int maxlen, int fd, int pg) { int len = DEFAULT_SGIO_LEN; @@ -846,13 +846,13 @@ return -1; } retry: - if (0 == do_inq(fd, 0, 1, 0x83, buff, len)) { + if (0 == do_inq(fd, 0, 1, pg, buff, len)) { len = buff[3] + (buff[2] << 8); if (len >= maxlen) return len; if (len > DEFAULT_SGIO_LEN) goto retry; - return 0; + return len; } return -1; } @@ -1099,7 +1099,7 @@ unsigned char buff[4096]; memset(buff, 0x0, 4096); - if (sgio_get_vpd(buff, 4096, fd) <= 0) { + if (sgio_get_vpd(buff, 4096, fd, pg) <= 0) { condlog(3, "failed to issue vpd inquiry for pg%02x", pg); return -errno; @@ -1118,7 +1118,11 @@ len = parse_vpd_pg80(buff, str, maxlen); else if (pg == 0x83) len = parse_vpd_pg83(buff, buff_len, str, maxlen); - else + else if (pg == 0xc9 && maxlen >= 8) { + len = buff_len < 8 ? -ENODATA : + (buff_len <= maxlen ? buff_len : maxlen); + memcpy (str, buff, len); + } else len = -ENOSYS; return len; @@ -1154,12 +1158,12 @@ condlog(3, "%s: vendor = %s", pp->dev, pp->vendor_id); - if (sysfs_get_model(parent, pp->product_id, SCSI_PRODUCT_SIZE) <= 0) + if (sysfs_get_model(parent, pp->product_id, PATH_PRODUCT_SIZE) <= 0) return 1; condlog(3, "%s: product = %s", pp->dev, pp->product_id); - if (sysfs_get_rev(parent, pp->rev, SCSI_REV_SIZE) < 0) + if (sysfs_get_rev(parent, pp->rev, PATH_REV_SIZE) < 0) return 1; condlog(3, "%s: rev = %s", pp->dev, pp->rev); @@ -1196,6 +1200,7 @@ { struct udev_device *parent; const char *attr_path = NULL; + const char *attr; attr_path = udev_device_get_sysname(pp->udev); if (!attr_path) @@ -1205,19 +1210,24 @@ &pp->sg_id.host_no, &pp->sg_id.scsi_id) != 2) return 1; - pp->sg_id.channel = 0; - pp->sg_id.lun = 0; - parent = udev_device_get_parent(pp->udev); + parent = udev_device_get_parent_with_subsystem_devtype(pp->udev, + "nvme", NULL); if (!parent) return 1; + attr = udev_device_get_sysattr_value(pp->udev, "nsid"); + pp->sg_id.lun = attr ? atoi(attr) : 0; + + attr = udev_device_get_sysattr_value(parent, "cntlid"); + pp->sg_id.channel = attr ? atoi(attr) : 0; + snprintf(pp->vendor_id, SCSI_VENDOR_SIZE, "NVME"); - snprintf(pp->product_id, SCSI_PRODUCT_SIZE, "%s", + snprintf(pp->product_id, PATH_PRODUCT_SIZE, "%s", udev_device_get_sysattr_value(parent, "model")); snprintf(pp->serial, SERIAL_SIZE, "%s", udev_device_get_sysattr_value(parent, "serial")); - snprintf(pp->rev, SCSI_REV_SIZE, "%s", + snprintf(pp->rev, PATH_REV_SIZE, "%s", udev_device_get_sysattr_value(parent, "firmware_rev")); condlog(3, "%s: vendor = %s", pp->dev, pp->vendor_id); @@ -1332,12 +1342,12 @@ condlog(3, "%s: vendor = %s", pp->dev, pp->vendor_id); - if (sysfs_get_model(parent, pp->product_id, SCSI_PRODUCT_SIZE) <= 0) + if (sysfs_get_model(parent, pp->product_id, PATH_PRODUCT_SIZE) <= 0) return 1; condlog(3, "%s: product = %s", pp->dev, pp->product_id); - if (sysfs_get_rev(parent, pp->rev, SCSI_REV_SIZE) <= 0) + if (sysfs_get_rev(parent, pp->rev, PATH_REV_SIZE) <= 0) return 1; condlog(3, "%s: rev = %s", pp->dev, pp->rev); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/multipath-tools-0.7.3+13+suse.db431514/libmultipath/dmparser.c new/multipath-tools-0.7.3+30+suse.6b5ed839/libmultipath/dmparser.c --- old/multipath-tools-0.7.3+13+suse.db431514/libmultipath/dmparser.c 2017-10-24 22:17:28.000000000 +0200 +++ new/multipath-tools-0.7.3+30+suse.6b5ed839/libmultipath/dmparser.c 2018-01-19 19:08:38.000000000 +0100 @@ -122,7 +122,6 @@ APPEND(p, end, " %s %d", pp->dev_t, tmp_minio); } } - APPEND(p, end, "\n"); FREE(f); condlog(3, "%s: assembled map [%s]", mp->alias, params); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/multipath-tools-0.7.3+13+suse.db431514/libmultipath/hwtable.c new/multipath-tools-0.7.3+30+suse.6b5ed839/libmultipath/hwtable.c --- old/multipath-tools-0.7.3+13+suse.db431514/libmultipath/hwtable.c 2017-10-24 22:17:28.000000000 +0200 +++ new/multipath-tools-0.7.3+30+suse.6b5ed839/libmultipath/hwtable.c 2018-01-19 19:08:38.000000000 +0100 @@ -76,6 +76,20 @@ #endif static struct hwentry default_hw[] = { + /* + * Generic NVMe devices + * + * Due to the parsing logic in find_hwe(), generic entries + * have to be put on top of this list, and more specific ones + * below. + */ + { + .vendor = "NVME", + .product = ".*", + .uid_attribute = "ID_WWN", + .checker_name = NONE, + .retain_hwhandler = RETAIN_HWHANDLER_OFF, + }, /* * Apple * @@ -666,6 +680,19 @@ .no_path_retry = 24, }, /* + * NetApp NVMe-FC namespace devices: MULTIBUS preferred + * + * The table is searched backwards, so place this after generic NVMe + */ + { + .vendor = "NVME", + .product = "(NetApp |)ONTAP Controller", + .uid_attribute = "ID_WWN", + .checker_name = NONE, + .pgpolicy = MULTIBUS, + .retain_hwhandler = RETAIN_HWHANDLER_OFF, + }, + /* * Nexenta * * Maintainer : Yacine Kheddache @@ -1125,16 +1152,6 @@ .no_path_retry = 30, }, /* - * Generic NVMe devices - */ - { - .vendor = "NVME", - .product = ".*", - .uid_attribute = "ID_WWN", - .checker_name = NONE, - .retain_hwhandler = RETAIN_HWHANDLER_OFF, - }, - /* * Dot Hill Systems - Seagate Technology */ { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/multipath-tools-0.7.3+13+suse.db431514/libmultipath/propsel.c new/multipath-tools-0.7.3+30+suse.6b5ed839/libmultipath/propsel.c --- old/multipath-tools-0.7.3+13+suse.db431514/libmultipath/propsel.c 2017-10-24 22:17:28.000000000 +0200 +++ new/multipath-tools-0.7.3+30+suse.6b5ed839/libmultipath/propsel.c 2018-01-19 19:08:38.000000000 +0100 @@ -512,7 +512,7 @@ if (pp->tpgs <= 0) return; - if (pp->tpgs == 2 && !check_rdac(pp)) { + if (pp->tpgs == 2 || !check_rdac(pp)) { if (sysfs_get_asymmetric_access_state(pp, buff, 512) >= 0) default_prio = PRIO_SYSFS; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/multipath-tools-0.7.3+13+suse.db431514/libmultipath/structs.h new/multipath-tools-0.7.3+30+suse.6b5ed839/libmultipath/structs.h --- old/multipath-tools-0.7.3+13+suse.db431514/libmultipath/structs.h 2017-10-24 22:17:28.000000000 +0200 +++ new/multipath-tools-0.7.3+30+suse.6b5ed839/libmultipath/structs.h 2018-01-19 19:08:38.000000000 +0100 @@ -25,6 +25,12 @@ #define SCSI_PRODUCT_SIZE 17 #define SCSI_REV_SIZE 5 #define SCSI_STATE_SIZE 19 +#define NVME_MODEL_SIZE 41 +#define NVME_REV_SIZE 9 + +/* This must be the maximum of SCSI and NVME sizes */ +#define PATH_PRODUCT_SIZE NVME_MODEL_SIZE +#define PATH_REV_SIZE NVME_REV_SIZE #define NO_PATH_RETRY_UNDEF 0 #define NO_PATH_RETRY_FAIL -1 @@ -210,8 +216,8 @@ struct hd_geometry geom; char wwid[WWID_SIZE]; char vendor_id[SCSI_VENDOR_SIZE]; - char product_id[SCSI_PRODUCT_SIZE]; - char rev[SCSI_REV_SIZE]; + char product_id[PATH_PRODUCT_SIZE]; + char rev[PATH_REV_SIZE]; char serial[SERIAL_SIZE]; char tgt_node_name[NODE_NAME_SIZE]; unsigned long long size; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/multipath-tools-0.7.3+13+suse.db431514/multipath/11-dm-mpath.rules new/multipath-tools-0.7.3+30+suse.6b5ed839/multipath/11-dm-mpath.rules --- old/multipath-tools-0.7.3+13+suse.db431514/multipath/11-dm-mpath.rules 2017-10-24 22:17:28.000000000 +0200 +++ new/multipath-tools-0.7.3+30+suse.6b5ed839/multipath/11-dm-mpath.rules 2018-01-19 19:08:38.000000000 +0100 @@ -100,7 +100,8 @@ TEST=="/usr/lib/udev/kpartx_id", \ IMPORT{program}=="kpartx_id %M %m $env{DM_UUID}" -ENV{DM_TYPE}=="?*", SYMLINK+="disk/by-id/$env{DM_TYPE}-$env{DM_NAME}" +ENV{DM_TYPE}=="?*", ENV{DM_SERIAL}=="?*", \ + SYMLINK+="disk/by-id/$env{DM_TYPE}-$env{DM_SERIAL}" ENV{DM_WWN}=="?*", SYMLINK+="disk/by-id/wwn-$env{DM_WWN}" LABEL="mpath_end" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/multipath-tools-0.7.3+13+suse.db431514/multipath/main.c new/multipath-tools-0.7.3+30+suse.6b5ed839/multipath/main.c --- old/multipath-tools-0.7.3+13+suse.db431514/multipath/main.c 2017-10-24 22:17:28.000000000 +0200 +++ new/multipath-tools-0.7.3+30+suse.6b5ed839/multipath/main.c 2018-01-19 19:08:38.000000000 +0100 @@ -325,7 +325,8 @@ } } found: - condlog(2, "%s:%s usable paths found", devpath, r == 0 ? "" : " no"); + condlog(r == 0 ? 3 : 2, "%s:%s usable paths found", + devpath, r == 0 ? "" : " no"); free: FREE(mapname); free_multipath(mpp, FREE_PATHS); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/multipath-tools-0.7.3+13+suse.db431514/multipath/multipath.rules new/multipath-tools-0.7.3+30+suse.6b5ed839/multipath/multipath.rules --- old/multipath-tools-0.7.3+13+suse.db431514/multipath/multipath.rules 2017-10-24 22:17:28.000000000 +0200 +++ new/multipath-tools-0.7.3+30+suse.6b5ed839/multipath/multipath.rules 2018-01-19 19:08:38.000000000 +0100 @@ -1,7 +1,7 @@ # Set DM_MULTIPATH_DEVICE_PATH if the device should be handled by multipath SUBSYSTEM!="block", GOTO="end_mpath" ACTION!="add|change", GOTO="end_mpath" -KERNEL!="sd*|dasd*", GOTO="end_mpath" +KERNEL!="sd*|dasd*|nvme*", GOTO="end_mpath" IMPORT{cmdline}="nompath" ENV{nompath}=="?*", GOTO="end_mpath" @@ -16,6 +16,11 @@ LABEL="test_dev" +# The following rule is a temporary workaround for the fact that NVMe related rules +# are called in 60-persistent-storage.rules, after this file is processed. +KERNEL=="nvme*[0-9]n*[0-9]", ENV{ID_WWN}=="", ENV{DEVTYPE}=="disk", \ + ATTRS{wwid}=="?*", ENV{ID_WWN}="$attr{wwid}" + ENV{MPATH_SBIN_PATH}="/sbin" TEST!="$env{MPATH_SBIN_PATH}/multipath", ENV{MPATH_SBIN_PATH}="/usr/sbin" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/multipath-tools-0.7.3+13+suse.db431514/multipathd/multipathd.service new/multipath-tools-0.7.3+30+suse.6b5ed839/multipathd/multipathd.service --- old/multipath-tools-0.7.3+13+suse.db431514/multipathd/multipathd.service 2017-10-24 22:17:28.000000000 +0200 +++ new/multipath-tools-0.7.3+30+suse.6b5ed839/multipathd/multipathd.service 2018-01-19 19:08:38.000000000 +0100 @@ -1,7 +1,7 @@ [Unit] Description=Device-Mapper Multipath Device Controller Wants=systemd-udev-trigger.service systemd-udev-settle.service -Before=iscsi.service iscsid.service lvm2-lvmetad.service lvm2-activation-early.service +Before=iscsi.service iscsid.service lvm2-activation-early.service Before=local-fs-pre.target blk-availability.service After=multipathd.socket systemd-udev-trigger.service systemd-udev-settle.service DefaultDependencies=no diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/multipath-tools-0.7.3+13+suse.db431514/multipathd/multipathd.socket new/multipath-tools-0.7.3+30+suse.6b5ed839/multipathd/multipathd.socket --- old/multipath-tools-0.7.3+13+suse.db431514/multipathd/multipathd.socket 2017-10-24 22:17:28.000000000 +0200 +++ new/multipath-tools-0.7.3+30+suse.6b5ed839/multipathd/multipathd.socket 2018-01-19 19:08:38.000000000 +0100 @@ -5,3 +5,6 @@ [Socket] ListenStream=@/org/kernel/linux/storage/multipathd + +[Install] +WantedBy=sockets.target
