Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package multipath-tools for openSUSE:Factory
checked in at 2021-08-24 10:54:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/multipath-tools (Old)
and /work/SRC/openSUSE:Factory/.multipath-tools.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "multipath-tools"
Tue Aug 24 10:54:17 2021 rev:133 rq:913320 version:0.8.6+32+suse.f11c192
Changes:
--------
--- /work/SRC/openSUSE:Factory/multipath-tools/multipath-tools.changes
2021-06-13 23:05:49.755634519 +0200
+++
/work/SRC/openSUSE:Factory/.multipath-tools.new.1899/multipath-tools.changes
2021-08-24 10:55:06.376302398 +0200
@@ -1,0 +2,26 @@
+Fri Aug 13 11:03:13 UTC 2021 - Martin Wilck <[email protected]>
+
+- Spec file: remove compatibility code for SLE <= SLE15-SP2
+
+-------------------------------------------------------------------
+Thu Aug 12 20:08:23 UTC 2021 - [email protected]
+
+- Update to version 0.8.6+32+suse.f11c192:
+ * libmultipath:fix compilation with glibc 2.34 (bsc#1189099)
+ * libmultipath: avoid buffer size warning with systemd 240+
+ (bsc#1189176)
+ * libmultipath: use uint64_t for sg_id.lun (bsc#1187534)
+
+- Upstream bug fixes:
+ * multipath-tools: make HUAWEI/XSG1 config work with alua and multibus
+ * multipath-tools: add info about HPE Alletra 6000 and 9000
+ * multipathd: cli_getprkey(): fix return value and "aptpl" support
+ * multipathd: don't rescan_path on wwid change in uev_update_path
+ * kpartx: Don't leak memory when getblock returns NULL
+ * multipath: free vectors in configure
+ * multipathd: fix ev_remove_path return code handling
+ * multipathd: remove duplicate orphan_paths in flush_map
+ * multipathd: don't fail to remove path once the map is removed
+ * multipathd: fix compilation issue with liburcu < 0.8
+
+-------------------------------------------------------------------
@@ -4 +30 @@
-- install to /usr (boo#1029961)
+- install to /usr on Tumbleweed (boo#1029961)
Old:
----
multipath-tools-0.8.6+10+suse.4771137.obscpio
New:
----
multipath-tools-0.8.6+32+suse.f11c192.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ multipath-tools.spec ++++++
--- /var/tmp/diff_new_pack.jPQEJB/_old 2021-08-24 10:55:07.020301545 +0200
+++ /var/tmp/diff_new_pack.jPQEJB/_new 2021-08-24 10:55:07.020301545 +0200
@@ -18,27 +18,18 @@
%global _lto_cflags %{nil}
-# Whether to build libdmmp
-# Default YES except for SLE12 / Leap 42
-%if 0%{?suse_version} >= 1500
+# Whether to build libdmmp - default YES
%bcond_without libdmmp
-%else
-%bcond_with libdmmp
-%endif
-# "make test" disabled on SLE12 (cmocka not available)
-%if 0%{?suse_version} >= 1500
+# Whether to run tests - default YES
%bcond_without check
-%else
-%bcond_with check
-%endif
# This should match the version in libdmmp/Makefile
%define _libdmmp_version 0.2.0
%define libdmmp_version %(echo %{_libdmmp_version} | tr . _)
Name: multipath-tools
-Version: 0.8.6+10+suse.4771137
+Version: 0.8.6+32+suse.f11c192
Release: 0
Summary: Tools to Manage Multipathed Devices with the device-mapper
License: GPL-2.0-only
@@ -89,6 +80,7 @@
availability of the map devices.
+
# Currently, it makes no sense to split out libmpathpersist and libmpathcmd
# separately. libmultipath has no stable API at all, and it depends
# on libmpathcmd (to be fixed). libmpathpersist depends on libmultipath
@@ -161,22 +153,17 @@
%prep
%setup -q -n multipath-tools-%{version}
-# This must be before autopatch for code 12, otherwise build error
cp %{SOURCE4} .
cp %{SOURCE5} .
%autopatch -p1
%build
[ -n "$SOURCE_DATE_EPOCH" ] && export
KBUILD_BUILD_TIMESTAMP=@$SOURCE_DATE_EPOCH
-# %%make_build is not supported in SLE12
-%{?make_build}%{!?make_build:make %{?_smp_mflags}} \
- CC="%__cc" OPTFLAGS="%{optflags}" %{dirflags} %{makeflags}
+%{make_build} OPTFLAGS="%{optflags}" %{dirflags} %{makeflags}
%if 0%{?with_check} == 1
%check
-# ld fails to resolve cmocka's __wrap symbols with -flto
-# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88643
-make OPTFLAGS="%{optflags}" %{_make_output_sync} %{?_smp_mflags} test
+%{make_build} OPTFLAGS="%{optflags}" test
%endif
%install
@@ -215,11 +202,7 @@
%postun
%{?regenerate_initrd_post}
%service_del_postun multipathd.service
-%if 0%{?suse_version} >= 1550
%service_del_postun_without_restart multipathd.socket
-%else
-%service_del_postun -n multipathd.socket
-%endif
%posttrans
%{?regenerate_initrd_posttrans}
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.jPQEJB/_old 2021-08-24 10:55:07.080301465 +0200
+++ /var/tmp/diff_new_pack.jPQEJB/_new 2021-08-24 10:55:07.084301460 +0200
@@ -1,4 +1,4 @@
<servicedata>
<service name="tar_scm">
<param
name="url">https://github.com/openSUSE/multipath-tools.git</param>
- <param
name="changesrevision">47711374a3d8582b68b3cd76d26ba6bb4d652e26</param></service></servicedata>
\ No newline at end of file
+ <param
name="changesrevision">f11c1929ed6dc7bdcc5b699df1c397f298406eab</param></service></servicedata>
\ No newline at end of file
++++++ multipath-tools-0.8.6+10+suse.4771137.obscpio ->
multipath-tools-0.8.6+32+suse.f11c192.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/.github/workflows/sles.yaml
new/multipath-tools-0.8.6+32+suse.f11c192/.github/workflows/sles.yaml
--- old/multipath-tools-0.8.6+10+suse.4771137/.github/workflows/sles.yaml
1970-01-01 01:00:00.000000000 +0100
+++ new/multipath-tools-0.8.6+32+suse.f11c192/.github/workflows/sles.yaml
2021-08-12 18:02:05.000000000 +0200
@@ -0,0 +1,32 @@
+name: compile and unit test on Leap
+on:
+ push:
+ branches:
+ - sles*
+ - factory
+ - next
+
+jobs:
+ build-and-test:
+ runs-on: ubuntu-20.04
+ strategy:
+ matrix:
+ os: ['leap15.2']
+ arch: ['', '-ppc64le', '-arm64', '-arm']
+ include:
+ - os: 'leap15.3'
+ arch: '-s390x'
+ steps:
+ - name: checkout
+ uses: actions/checkout@v1
+ - name: enable foreign arch
+ run: sudo docker run --rm --privileged multiarch/qemu-user-static
--reset -p yes
+ - name: build and run unit tests
+ # Github actions doesn't support referencing docker images with
+ # context variables. Workaround: use mosteo-actions/docker-run action
+ # See https://github.community/t/expressions-in-docker-uri/16271
+ uses: mosteo-actions/docker-run@v1
+ with:
+ image: mwilck/multipath-build-${{ matrix.os }}${{ matrix.arch }}
+ command: test
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/multipath-tools-0.8.6+10+suse.4771137/.gitignore
new/multipath-tools-0.8.6+32+suse.f11c192/.gitignore
--- old/multipath-tools-0.8.6+10+suse.4771137/.gitignore 1970-01-01
01:00:00.000000000 +0100
+++ new/multipath-tools-0.8.6+32+suse.f11c192/.gitignore 2021-08-12
18:02:05.000000000 +0200
@@ -0,0 +1,25 @@
+*.o
+.dotest
+*~
+*.so
+*.so.0
+*.a
+*.gz
+*.d
+kpartx/kpartx
+multipath/multipath
+multipathd/multipathd
+mpathpersist/mpathpersist
+.nfs*
+*.swp
+*.patch
+*.rej
+*.orig
+libdmmp/docs/man/*.3.gz
+libdmmp/*.so.*
+libdmmp/test/libdmmp_test
+libdmmp/test/libdmmp_speed_test
+tests/*-test
+tests/*.out
+libmultipath/nvme-ioctl.c
+libmultipath/nvme-ioctl.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/multipath-tools-0.8.6+10+suse.4771137/Makefile.inc
new/multipath-tools-0.8.6+32+suse.f11c192/Makefile.inc
--- old/multipath-tools-0.8.6+10+suse.4771137/Makefile.inc 2021-04-12
18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/Makefile.inc 2021-08-12
18:02:05.000000000 +0200
@@ -95,12 +95,13 @@
STACKPROT := $(call TEST_CC_OPTION,-fstack-protector-strong,-fstack-protector)
ERROR_DISCARDED_QUALIFIERS := $(call
TEST_CC_OPTION,-Werror=discarded-qualifiers,)
WNOCLOBBERED := $(call TEST_CC_OPTION,-Wno-clobbered -Wno-error=clobbered,)
+WFORMATOVERFLOW := $(call TEST_CC_OPTION,-Wformat-overflow=2,)
OPTFLAGS := -O2 -g $(STACKPROT) --param=ssp-buffer-size=4
-WARNFLAGS := -Werror -Wall -Wextra -Wformat=2 -Werror=implicit-int \
+WARNFLAGS := -Werror -Wall -Wextra -Wformat=2 $(WFORMATOVERFLOW)
-Werror=implicit-int \
-Werror=implicit-function-declaration -Werror=format-security
\
$(WNOCLOBBERED) -Werror=cast-qual
$(ERROR_DISCARDED_QUALIFIERS)
-CPPFLAGS := -Wp,-D_FORTIFY_SOURCE=2
+CPPFLAGS := -Wp,-D_FORTIFY_SOURCE=2
CFLAGS := --std=gnu99 $(CFLAGS) $(OPTFLAGS) $(WARNFLAGS) -pipe \
-DBIN_DIR=\"$(bindir)\" -DLIB_STRING=\"${LIB}\"
-DRUN_DIR=\"${RUN}\" \
-MMD -MP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/multipath-tools-0.8.6+10+suse.4771137/README.alua
new/multipath-tools-0.8.6+32+suse.f11c192/README.alua
--- old/multipath-tools-0.8.6+10+suse.4771137/README.alua 2021-04-12
18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/README.alua 2021-08-12
18:02:05.000000000 +0200
@@ -6,7 +6,7 @@
- EMC CLARiiON/VNX:
"Failover Mode" should be changed to "4" or "Active-Active
mode(ALUA)-failover mode 4"
-- HPE 3PAR:
+- HPE 3PAR, Primera, and Alletra 9000:
"Host:" should be changed to "Generic-ALUA Persona 2 (UARepLun, SESLun,
ALUA)".
- Promise VTrak/Vess:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/kpartx/kpartx.c
new/multipath-tools-0.8.6+32+suse.f11c192/kpartx/kpartx.c
--- old/multipath-tools-0.8.6+10+suse.4771137/kpartx/kpartx.c 2021-04-12
18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/kpartx/kpartx.c 2021-08-12
18:02:05.000000000 +0200
@@ -766,6 +766,8 @@
if (read(fd, bp->block, secsz) != secsz) {
fprintf(stderr, "read error, sector %d\n", secnr);
blockhead = bp->next;
+ free(bp->block);
+ free(bp);
return NULL;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/Makefile
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/Makefile
--- old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/Makefile 2021-04-12
18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/Makefile 2021-08-12
18:02:05.000000000 +0200
@@ -76,6 +76,8 @@
docs/man/dmmp_strerror.3: $(HEADERS)
TEMPFILE=$(shell mktemp); \
cat $^ | perl docs/doc-preclean.pl >$$TEMPFILE; \
+ LC_ALL=C \
+ KBUILD_BUILD_TIMESTAMP=`git log -n1 --pretty=%cd --date=iso -- $^` \
perl docs/kernel-doc -man $$TEMPFILE | \
perl docs/split-man.pl docs/man; \
rm -f $$TEMPFILE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_context_free.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_context_free.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_context_free.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_context_free.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_context_free" 3 "dmmp_context_free" "March 2021" "Device Mapper
Multipath API - libdmmp Manual"
+.TH "dmmp_context_free" 3 "dmmp_context_free" "March 2018" "Device Mapper
Multipath API - libdmmp Manual"
.SH NAME
dmmp_context_free \- Release the memory of struct dmmp_context.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_context_log_func_set.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_context_log_func_set.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_context_log_func_set.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_context_log_func_set.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_context_log_func_set" 3 "dmmp_context_log_func_set" "March 2021"
"Device Mapper Multipath API - libdmmp Manual"
+.TH "dmmp_context_log_func_set" 3 "dmmp_context_log_func_set" "March 2018"
"Device Mapper Multipath API - libdmmp Manual"
.SH NAME
dmmp_context_log_func_set \- Set log handler function.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_context_log_priority_get.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_context_log_priority_get.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_context_log_priority_get.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_context_log_priority_get.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_context_log_priority_get" 3 "dmmp_context_log_priority_get" "March
2021" "Device Mapper Multipath API - libdmmp Manual"
+.TH "dmmp_context_log_priority_get" 3 "dmmp_context_log_priority_get" "March
2018" "Device Mapper Multipath API - libdmmp Manual"
.SH NAME
dmmp_context_log_priority_get \- Get log priority.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_context_log_priority_set.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_context_log_priority_set.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_context_log_priority_set.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_context_log_priority_set.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_context_log_priority_set" 3 "dmmp_context_log_priority_set" "March
2021" "Device Mapper Multipath API - libdmmp Manual"
+.TH "dmmp_context_log_priority_set" 3 "dmmp_context_log_priority_set" "March
2018" "Device Mapper Multipath API - libdmmp Manual"
.SH NAME
dmmp_context_log_priority_set \- Set log priority.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_context_new.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_context_new.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_context_new.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_context_new.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_context_new" 3 "dmmp_context_new" "March 2021" "Device Mapper
Multipath API - libdmmp Manual"
+.TH "dmmp_context_new" 3 "dmmp_context_new" "March 2018" "Device Mapper
Multipath API - libdmmp Manual"
.SH NAME
dmmp_context_new \- Create struct dmmp_context.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_context_timeout_get.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_context_timeout_get.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_context_timeout_get.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_context_timeout_get.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_context_timeout_get" 3 "dmmp_context_timeout_get" "March 2021"
"Device Mapper Multipath API - libdmmp Manual"
+.TH "dmmp_context_timeout_get" 3 "dmmp_context_timeout_get" "March 2018"
"Device Mapper Multipath API - libdmmp Manual"
.SH NAME
dmmp_context_timeout_get \- Get IPC timeout.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_context_timeout_set.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_context_timeout_set.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_context_timeout_set.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_context_timeout_set.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_context_timeout_set" 3 "dmmp_context_timeout_set" "March 2021"
"Device Mapper Multipath API - libdmmp Manual"
+.TH "dmmp_context_timeout_set" 3 "dmmp_context_timeout_set" "March 2018"
"Device Mapper Multipath API - libdmmp Manual"
.SH NAME
dmmp_context_timeout_set \- Set IPC timeout.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_context_userdata_get.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_context_userdata_get.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_context_userdata_get.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_context_userdata_get.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_context_userdata_get" 3 "dmmp_context_userdata_get" "March 2021"
"Device Mapper Multipath API - libdmmp Manual"
+.TH "dmmp_context_userdata_get" 3 "dmmp_context_userdata_get" "March 2018"
"Device Mapper Multipath API - libdmmp Manual"
.SH NAME
dmmp_context_userdata_get \- Get user data pointer.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_context_userdata_set.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_context_userdata_set.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_context_userdata_set.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_context_userdata_set.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_context_userdata_set" 3 "dmmp_context_userdata_set" "March 2021"
"Device Mapper Multipath API - libdmmp Manual"
+.TH "dmmp_context_userdata_set" 3 "dmmp_context_userdata_set" "March 2018"
"Device Mapper Multipath API - libdmmp Manual"
.SH NAME
dmmp_context_userdata_set \- Set user data pointer.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_flush_mpath.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_flush_mpath.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_flush_mpath.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_flush_mpath.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_flush_mpath" 3 "dmmp_flush_mpath" "March 2021" "Device Mapper
Multipath API - libdmmp Manual"
+.TH "dmmp_flush_mpath" 3 "dmmp_flush_mpath" "March 2018" "Device Mapper
Multipath API - libdmmp Manual"
.SH NAME
dmmp_flush_mpath \- Flush specified multipath device map if unused.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_last_error_msg.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_last_error_msg.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_last_error_msg.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_last_error_msg.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_last_error_msg" 3 "dmmp_last_error_msg" "March 2021" "Device Mapper
Multipath API - libdmmp Manual"
+.TH "dmmp_last_error_msg" 3 "dmmp_last_error_msg" "March 2018" "Device Mapper
Multipath API - libdmmp Manual"
.SH NAME
dmmp_last_error_msg \- Retrieves the last error message.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_log_priority_str.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_log_priority_str.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_log_priority_str.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_log_priority_str.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_log_priority_str" 3 "dmmp_log_priority_str" "March 2021" "Device
Mapper Multipath API - libdmmp Manual"
+.TH "dmmp_log_priority_str" 3 "dmmp_log_priority_str" "March 2018" "Device
Mapper Multipath API - libdmmp Manual"
.SH NAME
dmmp_log_priority_str \- Convert log priority to string.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_mpath_array_free.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_mpath_array_free.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_mpath_array_free.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_mpath_array_free.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_mpath_array_free" 3 "dmmp_mpath_array_free" "March 2021" "Device
Mapper Multipath API - libdmmp Manual"
+.TH "dmmp_mpath_array_free" 3 "dmmp_mpath_array_free" "March 2018" "Device
Mapper Multipath API - libdmmp Manual"
.SH NAME
dmmp_mpath_array_free \- Free 'struct dmmp_mpath' pointer array.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_mpath_array_get.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_mpath_array_get.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_mpath_array_get.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_mpath_array_get.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_mpath_array_get" 3 "dmmp_mpath_array_get" "March 2021" "Device
Mapper Multipath API - libdmmp Manual"
+.TH "dmmp_mpath_array_get" 3 "dmmp_mpath_array_get" "March 2018" "Device
Mapper Multipath API - libdmmp Manual"
.SH NAME
dmmp_mpath_array_get \- Query all existing multipath devices.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_mpath_kdev_name_get.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_mpath_kdev_name_get.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_mpath_kdev_name_get.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_mpath_kdev_name_get.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_mpath_kdev_name_get" 3 "dmmp_mpath_kdev_name_get" "March 2021"
"Device Mapper Multipath API - libdmmp Manual"
+.TH "dmmp_mpath_kdev_name_get" 3 "dmmp_mpath_kdev_name_get" "March 2018"
"Device Mapper Multipath API - libdmmp Manual"
.SH NAME
dmmp_mpath_kdev_name_get \- Retrieve kernel DEVNAME of certain mpath.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_mpath_name_get.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_mpath_name_get.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_mpath_name_get.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_mpath_name_get.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_mpath_name_get" 3 "dmmp_mpath_name_get" "March 2021" "Device Mapper
Multipath API - libdmmp Manual"
+.TH "dmmp_mpath_name_get" 3 "dmmp_mpath_name_get" "March 2018" "Device Mapper
Multipath API - libdmmp Manual"
.SH NAME
dmmp_mpath_name_get \- Retrieve name(alias) of certain mpath.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_mpath_wwid_get.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_mpath_wwid_get.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_mpath_wwid_get.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_mpath_wwid_get.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_mpath_wwid_get" 3 "dmmp_mpath_wwid_get" "March 2021" "Device Mapper
Multipath API - libdmmp Manual"
+.TH "dmmp_mpath_wwid_get" 3 "dmmp_mpath_wwid_get" "March 2018" "Device Mapper
Multipath API - libdmmp Manual"
.SH NAME
dmmp_mpath_wwid_get \- Retrieve WWID of certain mpath.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_path_array_get.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_path_array_get.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_path_array_get.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_path_array_get.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_path_array_get" 3 "dmmp_path_array_get" "March 2021" "Device Mapper
Multipath API - libdmmp Manual"
+.TH "dmmp_path_array_get" 3 "dmmp_path_array_get" "March 2018" "Device Mapper
Multipath API - libdmmp Manual"
.SH NAME
dmmp_path_array_get \- Retrieve path pointer array.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_path_blk_name_get.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_path_blk_name_get.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_path_blk_name_get.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_path_blk_name_get.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_path_blk_name_get" 3 "dmmp_path_blk_name_get" "March 2021" "Device
Mapper Multipath API - libdmmp Manual"
+.TH "dmmp_path_blk_name_get" 3 "dmmp_path_blk_name_get" "March 2018" "Device
Mapper Multipath API - libdmmp Manual"
.SH NAME
dmmp_path_blk_name_get \- Retrieve block name.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_path_group_array_get.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_path_group_array_get.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_path_group_array_get.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_path_group_array_get.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_path_group_array_get" 3 "dmmp_path_group_array_get" "March 2021"
"Device Mapper Multipath API - libdmmp Manual"
+.TH "dmmp_path_group_array_get" 3 "dmmp_path_group_array_get" "March 2018"
"Device Mapper Multipath API - libdmmp Manual"
.SH NAME
dmmp_path_group_array_get \- Retrieve path groups pointer array.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_path_group_id_get.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_path_group_id_get.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_path_group_id_get.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_path_group_id_get.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_path_group_id_get" 3 "dmmp_path_group_id_get" "March 2021" "Device
Mapper Multipath API - libdmmp Manual"
+.TH "dmmp_path_group_id_get" 3 "dmmp_path_group_id_get" "March 2018" "Device
Mapper Multipath API - libdmmp Manual"
.SH NAME
dmmp_path_group_id_get \- Retrieve path group ID.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_path_group_priority_get.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_path_group_priority_get.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_path_group_priority_get.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_path_group_priority_get.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_path_group_priority_get" 3 "dmmp_path_group_priority_get" "March
2021" "Device Mapper Multipath API - libdmmp Manual"
+.TH "dmmp_path_group_priority_get" 3 "dmmp_path_group_priority_get" "March
2018" "Device Mapper Multipath API - libdmmp Manual"
.SH NAME
dmmp_path_group_priority_get \- Retrieve path group priority.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_path_group_selector_get.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_path_group_selector_get.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_path_group_selector_get.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_path_group_selector_get.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_path_group_selector_get" 3 "dmmp_path_group_selector_get" "March
2021" "Device Mapper Multipath API - libdmmp Manual"
+.TH "dmmp_path_group_selector_get" 3 "dmmp_path_group_selector_get" "March
2018" "Device Mapper Multipath API - libdmmp Manual"
.SH NAME
dmmp_path_group_selector_get \- Retrieve path group selector.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_path_group_status_get.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_path_group_status_get.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_path_group_status_get.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_path_group_status_get.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_path_group_status_get" 3 "dmmp_path_group_status_get" "March 2021"
"Device Mapper Multipath API - libdmmp Manual"
+.TH "dmmp_path_group_status_get" 3 "dmmp_path_group_status_get" "March 2018"
"Device Mapper Multipath API - libdmmp Manual"
.SH NAME
dmmp_path_group_status_get \- Retrieve path group status.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_path_group_status_str.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_path_group_status_str.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_path_group_status_str.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_path_group_status_str.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_path_group_status_str" 3 "dmmp_path_group_status_str" "March 2021"
"Device Mapper Multipath API - libdmmp Manual"
+.TH "dmmp_path_group_status_str" 3 "dmmp_path_group_status_str" "March 2018"
"Device Mapper Multipath API - libdmmp Manual"
.SH NAME
dmmp_path_group_status_str \- Convert path group status to string.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_path_status_get.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_path_status_get.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_path_status_get.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_path_status_get.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_path_status_get" 3 "dmmp_path_status_get" "March 2021" "Device
Mapper Multipath API - libdmmp Manual"
+.TH "dmmp_path_status_get" 3 "dmmp_path_status_get" "March 2018" "Device
Mapper Multipath API - libdmmp Manual"
.SH NAME
dmmp_path_status_get \- Retrieve the path status.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_path_status_str.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_path_status_str.3
---
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_path_status_str.3
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_path_status_str.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_path_status_str" 3 "dmmp_path_status_str" "March 2021" "Device
Mapper Multipath API - libdmmp Manual"
+.TH "dmmp_path_status_str" 3 "dmmp_path_status_str" "March 2018" "Device
Mapper Multipath API - libdmmp Manual"
.SH NAME
dmmp_path_status_str \- Convert path status to string.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_reconfig.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_reconfig.3
--- old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_reconfig.3
2021-04-12 18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_reconfig.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_reconfig" 3 "dmmp_reconfig" "March 2021" "Device Mapper Multipath
API - libdmmp Manual"
+.TH "dmmp_reconfig" 3 "dmmp_reconfig" "March 2018" "Device Mapper Multipath
API - libdmmp Manual"
.SH NAME
dmmp_reconfig \- Instruct multipathd daemon to do reconfiguration.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_strerror.3
new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_strerror.3
--- old/multipath-tools-0.8.6+10+suse.4771137/libdmmp/docs/man/dmmp_strerror.3
2021-04-12 18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/libdmmp/docs/man/dmmp_strerror.3
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-.TH "dmmp_strerror" 3 "dmmp_strerror" "March 2021" "Device Mapper Multipath
API - libdmmp Manual"
+.TH "dmmp_strerror" 3 "dmmp_strerror" "March 2018" "Device Mapper Multipath
API - libdmmp Manual"
.SH NAME
dmmp_strerror \- Convert error code to string.
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/configure.c
new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/configure.c
--- old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/configure.c
2021-04-12 18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/configure.c
2021-08-12 18:02:05.000000000 +0200
@@ -398,7 +398,7 @@
start_io_err_stat_thread(vecs);
n_paths = VECTOR_SIZE(mpp->paths);
- /*
+ /*
* assign paths to path groups -- start with no groups and all paths
* in mpp->paths
*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/devmapper.c
new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/devmapper.c
--- old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/devmapper.c
2021-04-12 18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/devmapper.c
2021-08-12 18:02:05.000000000 +0200
@@ -49,6 +49,9 @@
#ifdef LIBDM_API_DEFERRED
static int dm_cancel_remove_partmaps(const char * mapname);
+#define __DR_UNUSED__ /* empty */
+#else
+#define __DR_UNUSED__ __attribute__((unused))
#endif
static int do_foreach_partmaps(const char * mapname,
@@ -384,7 +387,8 @@
#define do_deferred(x) ((x) == DEFERRED_REMOVE_ON || (x) ==
DEFERRED_REMOVE_IN_PROGRESS)
static int
-dm_simplecmd (int task, const char *name, int no_flush, int need_sync,
uint16_t udev_flags, int deferred_remove) {
+dm_simplecmd (int task, const char *name, int no_flush, int need_sync,
+ uint16_t udev_flags, int deferred_remove __DR_UNUSED__) {
int r = 0;
int udev_wait_flag = ((need_sync || udev_flags) &&
(task == DM_DEVICE_RESUME ||
@@ -598,8 +602,8 @@
return r;
/* If the resume failed, dm will leave the device suspended, and
- * drop the new table, so doing a second resume will try using
- * the original table */
+ * drop the new table, so doing a second resume will try using
+ * the original table */
if (dm_is_suspended(mpp->alias))
dm_simplecmd(DM_DEVICE_RESUME, mpp->alias, !flush, 1,
udev_flags, 0);
@@ -1122,7 +1126,8 @@
#else
int
-dm_flush_map_nopaths(const char * mapname, int deferred_remove)
+dm_flush_map_nopaths(const char * mapname,
+ int deferred_remove __attribute__((unused)))
{
return _dm_flush_map(mapname, 1, 0, 0, 0);
}
@@ -1573,7 +1578,7 @@
#else
int
-dm_cancel_deferred_remove (struct multipath *mpp)
+dm_cancel_deferred_remove (struct multipath *mpp __attribute__((unused)))
{
return 0;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/discovery.c
new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/discovery.c
--- old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/discovery.c
2021-04-12 18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/discovery.c
2021-08-12 18:02:05.000000000 +0200
@@ -635,7 +635,7 @@
{
struct udev_device *rport_dev = NULL;
char value[16], *eptr;
- char rport_id[32];
+ char rport_id[42];
unsigned int tmo;
int ret;
@@ -1427,7 +1427,7 @@
attr_path = udev_device_get_sysname(parent);
if (!attr_path)
break;
- if (sscanf(attr_path, "%i:%i:%i:%i",
+ if (sscanf(attr_path, "%i:%i:%i:%" SCNu64,
&pp->sg_id.host_no,
&pp->sg_id.channel,
&pp->sg_id.scsi_id,
@@ -1462,7 +1462,7 @@
/*
* host / bus / target / lun
*/
- condlog(3, "%s: h:b:t:l = %i:%i:%i:%i",
+ condlog(3, "%s: h:b:t:l = %i:%i:%i:%" PRIu64,
pp->dev,
pp->sg_id.host_no,
pp->sg_id.channel,
@@ -1577,7 +1577,7 @@
&pp->sg_id.host_no,
&pp->sg_id.channel,
&pp->sg_id.scsi_id) == 3) {
- condlog(3, "%s: h:b:t:l = %i:%i:%i:%i",
+ condlog(3, "%s: h:b:t:l = %i:%i:%i:%" PRIu64,
pp->dev,
pp->sg_id.host_no,
pp->sg_id.channel,
@@ -1636,7 +1636,7 @@
*/
pp->sg_id.lun = 0;
pp->sg_id.channel = 0;
- condlog(3, "%s: h:b:t:l = %i:%i:%i:%i",
+ condlog(3, "%s: h:b:t:l = %i:%i:%i:%" PRIu64,
pp->dev,
pp->sg_id.host_no,
pp->sg_id.channel,
@@ -1815,7 +1815,7 @@
attr_path = udev_device_get_sysname(parent);
if (!attr_path)
break;
- if (sscanf(attr_path, "%i:%i:%i:%i",
+ if (sscanf(attr_path, "%i:%i:%i:%" SCNu64,
&pp->sg_id.host_no,
&pp->sg_id.channel,
&pp->sg_id.scsi_id,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/hwtable.c
new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/hwtable.c
--- old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/hwtable.c
2021-04-12 18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/hwtable.c
2021-08-12 18:02:05.000000000 +0200
@@ -107,7 +107,7 @@
* HPE
*/
{
- /* 3PAR / Primera */
+ /* 3PAR / Primera / Alletra 9000 */
.vendor = "3PARdata",
.product = "VV",
.pgpolicy = GROUP_BY_PRIO,
@@ -225,7 +225,7 @@
.prio_name = PRIO_ALUA,
},
{
- /* Nimble Storage */
+ /* Nimble Storage / HPE Alletra 6000 */
.vendor = "Nimble",
.product = "Server",
.hwhandler = "1 alua",
@@ -1078,11 +1078,14 @@
* Huawei
*/
{
- /* OceanStor V3 */
+ /* OceanStor V3-V6 */
+ // This config works with multibus and ALUA
+ // ALUA is required by HyperMetro
.vendor = "HUAWEI",
.product = "XSG1",
.pgpolicy = GROUP_BY_PRIO,
- .prio_name = PRIO_ALUA,
+ .pgfailback = -FAILBACK_IMMEDIATE,
+ .no_path_retry = 15,
},
/*
* Kove
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/print.c
new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/print.c
--- old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/print.c
2021-04-12 18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/print.c
2021-08-12 18:02:05.000000000 +0200
@@ -1,4 +1,4 @@
-/*
+ /*
* Copyright (c) 2005 Christophe Varoqui
*/
#include <stdio.h>
@@ -392,7 +392,7 @@
if (!pp || pp->sg_id.host_no < 0)
return snprintf(buff, len, "#:#:#:#");
- return snprintf(buff, len, "%i:%i:%i:%i",
+ return snprintf(buff, len, "%i:%i:%i:%" PRIu64,
pp->sg_id.host_no,
pp->sg_id.channel,
pp->sg_id.scsi_id,
@@ -594,7 +594,7 @@
snprint_tgt_wwpn (char * buff, size_t len, const struct path * pp)
{
struct udev_device *rport_dev = NULL;
- char rport_id[32];
+ char rport_id[42];
const char *value = NULL;
int ret;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/prioritizers/weightedpath.c
new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/prioritizers/weightedpath.c
---
old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/prioritizers/weightedpath.c
2021-04-12 18:35:42.000000000 +0200
+++
new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/prioritizers/weightedpath.c
2021-08-12 18:02:05.000000000 +0200
@@ -101,7 +101,7 @@
}
if (!strcmp(regex, HBTL)) {
- sprintf(path, "%d:%d:%d:%d", pp->sg_id.host_no,
+ sprintf(path, "%d:%d:%d:%" PRIu64, pp->sg_id.host_no,
pp->sg_id.channel, pp->sg_id.scsi_id, pp->sg_id.lun);
} else if (!strcmp(regex, DEV_NAME)) {
strcpy(path, pp->dev);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/structs.c
new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/structs.c
--- old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/structs.c
2021-04-12 18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/structs.c
2021-08-12 18:02:05.000000000 +0200
@@ -96,7 +96,7 @@
pp->sg_id.host_no = -1;
pp->sg_id.channel = -1;
pp->sg_id.scsi_id = -1;
- pp->sg_id.lun = -1;
+ pp->sg_id.lun = SCSI_INVALID_LUN;
pp->sg_id.proto_id = SCSI_PROTOCOL_UNSPEC;
pp->fd = -1;
pp->tpgs = TPGS_UNDEF;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/structs.h
new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/structs.h
--- old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/structs.h
2021-04-12 18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/structs.h
2021-08-12 18:02:05.000000000 +0200
@@ -178,6 +178,8 @@
SCSI_PROTOCOL_UNSPEC = 0xf, /* No specific protocol */
};
+#define SCSI_INVALID_LUN ~0ULL
+
enum no_undef_states {
NU_NO = -1,
NU_UNDEF = 0,
@@ -258,7 +260,7 @@
int host_no;
int channel;
int scsi_id;
- int lun;
+ uint64_t lun;
short h_cmd_per_lun;
short d_queue_depth;
enum scsi_protocol proto_id;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/structs_vec.c
new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/structs_vec.c
--- old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/structs_vec.c
2021-04-12 18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/structs_vec.c
2021-08-12 18:02:05.000000000 +0200
@@ -45,8 +45,8 @@
/*
* Avoid adding removed paths to the map again
- * when we reload it. Such paths may exist if
- * domap fails in ev_remove_path().
+ * when we reload it. Such paths may exist in
+ * ev_remove_paths() or if it returns failure.
*/
pp1 = find_path_by_devt(pathvec, pp->dev_t);
if (pp1 && pp->initialized != INIT_REMOVED &&
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/sysfs.c
new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/sysfs.c
--- old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/sysfs.c
2021-04-12 18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/sysfs.c
2021-08-12 18:02:05.000000000 +0200
@@ -358,7 +358,7 @@
strchop(pp->wwid);
}
}
- } else if (nr < 0)
+ } else if (nr < 0)
condlog(1, "%s: error reading from %s: %m",
__func__, pathbuf);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/uevent.c
new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/uevent.c
--- old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/uevent.c
2021-04-12 18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/uevent.c
2021-08-12 18:02:05.000000000 +0200
@@ -569,7 +569,7 @@
}
pthread_cleanup_push(monitor_cleanup, monitor);
#ifdef LIBUDEV_API_RECVBUF
- if (udev_monitor_set_receive_buffer_size(monitor, 128 * 1024 * 1024))
+ if (udev_monitor_set_receive_buffer_size(monitor, 128 * 1024 * 1024) <
0)
condlog(2, "failed to increase buffer size");
#endif
fd = udev_monitor_get_fd(monitor);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/util.c
new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/util.c
--- old/multipath-tools-0.8.6+10+suse.4771137/libmultipath/util.c
2021-04-12 18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/libmultipath/util.c
2021-08-12 18:02:05.000000000 +0200
@@ -223,8 +223,8 @@
ret = pthread_attr_init(attr);
assert(ret == 0);
- if (stacksize < PTHREAD_STACK_MIN)
- stacksize = PTHREAD_STACK_MIN;
+ if (PTHREAD_STACK_MIN > 0 && stacksize < (size_t)PTHREAD_STACK_MIN)
+ stacksize = (size_t)PTHREAD_STACK_MIN;
ret = pthread_attr_setstacksize(attr, stacksize);
assert(ret == 0);
if (detached) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/multipath/main.c
new/multipath-tools-0.8.6+32+suse.f11c192/multipath/main.c
--- old/multipath-tools-0.8.6+10+suse.4771137/multipath/main.c 2021-04-12
18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/multipath/main.c 2021-08-12
18:02:05.000000000 +0200
@@ -466,7 +466,6 @@
*/
curmp = vector_alloc();
pathvec = vector_alloc();
- atexit(cleanup_vecs);
if (!curmp || !pathvec) {
condlog(0, "can not allocate memory");
@@ -578,6 +577,11 @@
if (refwwid)
FREE(refwwid);
+ free_multipathvec(curmp, KEEP_PATHS);
+ vecs.mpvec = NULL;
+ free_pathvec(pathvec, FREE_PATHS);
+ vecs.pathvec = NULL;
+
return r;
}
@@ -823,6 +827,7 @@
conf = get_multipath_config();
conf->retrigger_tries = 0;
conf->force_sync = 1;
+ atexit(cleanup_vecs);
while ((arg = getopt(argc, argv, ":adDcChl::eFfM:v:p:b:BrR:itTquUwW"))
!= EOF ) {
switch(arg) {
case 1: printf("optarg : %s\n",optarg);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/multipath/multipath.8
new/multipath-tools-0.8.6+32+suse.f11c192/multipath/multipath.8
--- old/multipath-tools-0.8.6+10+suse.4771137/multipath/multipath.8
2021-04-12 18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/multipath/multipath.8
2021-08-12 18:02:05.000000000 +0200
@@ -225,7 +225,7 @@
.TP
.B \-e
Enable all foreign libraries. This overrides the
-.I enable_foreign
+.I enable_foreign
option from \fBmultipath.conf(5)\fR.
.
.TP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/multipathd/Makefile
new/multipath-tools-0.8.6+32+suse.f11c192/multipathd/Makefile
--- old/multipath-tools-0.8.6+10+suse.4771137/multipathd/Makefile
2021-04-12 18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/multipathd/Makefile
2021-08-12 18:02:05.000000000 +0200
@@ -16,6 +16,8 @@
LIBDEPS += -L$(multipathdir) -lmultipath -L$(mpathpersistdir) -lmpathpersist \
-L$(mpathcmddir) -lmpathcmd -ludev -ldl -lurcu -lpthread \
-ldevmapper -lreadline
+CFLAGS += $(shell $(PKGCONFIG) --modversion liburcu 2>/dev/null | \
+ awk -F. '{ printf("-DURCU_VERSION=0x%06x", 256 * ( 256 * $$1 + $$2) +
$$3); }')
ifdef SYSTEMD
CFLAGS += -DUSE_SYSTEMD=$(SYSTEMD)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/multipathd/cli_handlers.c
new/multipath-tools-0.8.6+32+suse.f11c192/multipathd/cli_handlers.c
--- old/multipath-tools-0.8.6+10+suse.4771137/multipathd/cli_handlers.c
2021-04-12 18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/multipathd/cli_handlers.c
2021-08-12 18:02:05.000000000 +0200
@@ -32,6 +32,12 @@
#include "foreign.h"
#include "cli_handlers.h"
+#define SET_REPLY_AND_LEN(__rep, __len, string_literal)
\
+ do { \
+ *(__rep) = strdup(string_literal); \
+ *(__len) = *(__rep) ? sizeof(string_literal) : 0; \
+ } while (0)
+
int
show_paths (char ** r, int * len, struct vectors * vecs, char * style,
int pretty)
@@ -752,7 +758,8 @@
/* Have the checker reinstate this path asap */
pp->tick = 1;
return 0;
- } else if (!ev_remove_path(pp, vecs, true))
+ } else if (ev_remove_path(pp, vecs, true) &
+ REMOVE_PATH_SUCCESS)
/* Path removed in ev_remove_path() */
pp = NULL;
else {
@@ -801,8 +808,7 @@
}
return ev_add_path(pp, vecs, 1);
blacklisted:
- *reply = strdup("blacklisted\n");
- *len = strlen(*reply) + 1;
+ SET_REPLY_AND_LEN(reply, len, "blacklisted\n");
condlog(2, "%s: path blacklisted", param);
return 0;
}
@@ -813,6 +819,7 @@
struct vectors * vecs = (struct vectors *)data;
char * param = get_keyparam(v, PATH);
struct path *pp;
+ int ret;
param = convert_dev(param, 1);
condlog(2, "%s: remove path (operator)", param);
@@ -821,7 +828,12 @@
condlog(0, "%s: path already removed", param);
return 1;
}
- return ev_remove_path(pp, vecs, 1);
+ ret = ev_remove_path(pp, vecs, 1);
+ if (ret == REMOVE_PATH_DELAY)
+ SET_REPLY_AND_LEN(reply, len, "delayed\n");
+ else if (ret == REMOVE_PATH_MAP_ERROR)
+ SET_REPLY_AND_LEN(reply, len, "map reload error. removed\n");
+ return (ret == REMOVE_PATH_FAILURE);
}
int
@@ -845,8 +857,7 @@
invalid = 1;
pthread_cleanup_pop(1);
if (invalid) {
- *reply = strdup("blacklisted\n");
- *len = strlen(*reply) + 1;
+ SET_REPLY_AND_LEN(reply, len, "blacklisted\n");
condlog(2, "%s: map blacklisted", param);
return 1;
}
@@ -1204,7 +1215,7 @@
condlog(2, "reconfigure (operator)");
- rc = set_config_state(DAEMON_CONFIGURE);
+ rc = set_config_state(DAEMON_CONFIGURE);
if (rc == ETIMEDOUT) {
condlog(2, "timeout starting reconfiguration");
return 1;
@@ -1529,7 +1540,7 @@
struct multipath * mpp;
struct vectors * vecs = (struct vectors *)data;
char *mapname = get_keyparam(v, MAP);
- char *flagstr = "";
+ uint64_t key;
mapname = convert_dev(mapname, 0);
condlog(3, "%s: get persistent reservation key (operator)", mapname);
@@ -1542,17 +1553,16 @@
if (!*reply)
return 1;
- if (!get_be64(mpp->reservation_key)) {
+ key = get_be64(mpp->reservation_key);
+ if (!key) {
sprintf(*reply, "none\n");
- *len = strlen(*reply) + 1;
+ *len = sizeof("none\n");
return 0;
}
- if (mpp->sa_flags & MPATH_F_APTPL_MASK)
- flagstr = ":aptpl";
- snprintf(*reply, 26, "0x%" PRIx64 "%s\n",
- get_be64(mpp->reservation_key), flagstr);
- (*reply)[19] = '\0';
- *len = strlen(*reply) + 1;
+
+ /* This snprintf() can't overflow - PRIx64 needs max 16 chars */
+ *len = snprintf(*reply, 26, "0x%" PRIx64 "%s\n", key,
+ mpp->sa_flags & MPATH_F_APTPL_MASK ? ":aptpl" : "") + 1;
return 0;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/multipathd/main.c
new/multipath-tools-0.8.6+32+suse.f11c192/multipathd/main.c
--- old/multipath-tools-0.8.6+10+suse.4771137/multipathd/main.c 2021-04-12
18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/multipathd/main.c 2021-08-12
18:02:05.000000000 +0200
@@ -660,7 +660,6 @@
else
condlog(2, "%s: map flushed", mpp->alias);
- orphan_paths(vecs->pathvec, mpp, "map flushed");
remove_map_and_stop_waiter(mpp, vecs);
return 0;
@@ -839,7 +838,7 @@
return;
udd = udev_device_ref(pp->udev);
- if (ev_remove_path(pp, vecs, 1) != 0 && pp->mpp) {
+ if (!(ev_remove_path(pp, vecs, 1) & REMOVE_PATH_SUCCESS) && pp->mpp) {
pp->dmstate = PSTATE_FAILED;
dm_fail_path(pp->mpp->alias, pp->dev_t);
}
@@ -949,8 +948,8 @@
* Make another attempt to remove the path
*/
pp->mpp = prev_mpp;
- ret = ev_remove_path(pp, vecs, true);
- if (ret != 0) {
+ if (!(ev_remove_path(pp, vecs, true) &
+ REMOVE_PATH_SUCCESS)) {
/*
* Failure in ev_remove_path will keep
* path in pathvec in INIT_REMOVED state
@@ -961,6 +960,7 @@
dm_fail_path(pp->mpp->alias, pp->dev_t);
condlog(1, "%s: failed to re-add path
still mapped in %s",
pp->dev, pp->mpp->alias);
+ ret = 1;
} else if (r == PATHINFO_OK)
/*
* Path successfully freed, move on to
@@ -1168,7 +1168,6 @@
uev_remove_path (struct uevent *uev, struct vectors * vecs, int need_do_map)
{
struct path *pp;
- int ret;
condlog(3, "%s: remove path (uevent)", uev->kernel);
delete_foreign(uev->udev);
@@ -1178,21 +1177,18 @@
pthread_testcancel();
pp = find_path_by_dev(vecs->pathvec, uev->kernel);
if (pp)
- ret = ev_remove_path(pp, vecs, need_do_map);
+ ev_remove_path(pp, vecs, need_do_map);
lock_cleanup_pop(vecs->lock);
- if (!pp) {
- /* Not an error; path might have been purged earlier */
+ if (!pp) /* Not an error; path might have been purged earlier */
condlog(0, "%s: path already removed", uev->kernel);
- return 0;
- }
- return ret;
+ return 0;
}
int
ev_remove_path (struct path *pp, struct vectors * vecs, int need_do_map)
{
struct multipath * mpp;
- int i, retval = 0;
+ int i, retval = REMOVE_PATH_SUCCESS;
char params[PARAMS_SIZE] = {0};
/*
@@ -1200,6 +1196,13 @@
*/
if ((mpp = pp->mpp)) {
/*
+ * Mark the path as removed. In case of success, we
+ * will delete it for good. Otherwise, it will be deleted
+ * later, unless all attempts to reload this map fail.
+ */
+ set_path_removed(pp);
+
+ /*
* transform the mp->pg vector of vectors of paths
* into a mp->params string to feed the device-mapper
*/
@@ -1210,13 +1213,9 @@
}
/*
- * Mark the path as removed. In case of success, we
- * will delete it for good. Otherwise, it will be deleted
- * later, unless all attempts to reload this map fail.
- * Note: we have to explicitly remove pp from mpp->paths,
+ * we have to explicitly remove pp from mpp->paths,
* update_mpp_paths() doesn't do that.
*/
- set_path_removed(pp);
i = find_slot(mpp->paths, pp);
if (i != -1)
vector_del_slot(mpp->paths, i);
@@ -1243,7 +1242,6 @@
condlog(2, "%s: removed map after"
" removing all paths",
alias);
- retval = 0;
/* flush_map() has freed the path */
goto out;
}
@@ -1260,11 +1258,14 @@
if (mpp->wait_for_udev) {
mpp->wait_for_udev = 2;
+ retval = REMOVE_PATH_DELAY;
goto out;
}
- if (!need_do_map)
+ if (!need_do_map) {
+ retval = REMOVE_PATH_DELAY;
goto out;
+ }
/*
* reload the map
*/
@@ -1273,7 +1274,7 @@
condlog(0, "%s: failed in domap for "
"removal of path %s",
mpp->alias, pp->dev);
- retval = 1;
+ retval = REMOVE_PATH_FAILURE;
} else {
/*
* update our state from kernel
@@ -1281,12 +1282,12 @@
char devt[BLK_DEV_SIZE];
strlcpy(devt, pp->dev_t, sizeof(devt));
+
+ /* setup_multipath will free the path
+ * regardless of whether it succeeds or
+ * fails */
if (setup_multipath(vecs, mpp))
- return 1;
- /*
- * Successful map reload without this path:
- * sync_map_state() will free it.
- */
+ return REMOVE_PATH_MAP_ERROR;
sync_map_state(mpp);
condlog(2, "%s: path removed from map %s",
@@ -1302,8 +1303,10 @@
return retval;
fail:
+ condlog(0, "%s: error removing path. removing map %s", pp->dev,
+ mpp->alias);
remove_map_and_stop_waiter(mpp, vecs);
- return 1;
+ return REMOVE_PATH_MAP_ERROR;
}
static int
@@ -1356,7 +1359,6 @@
condlog(0, "%s: path wwid changed from '%s' to '%s'",
uev->kernel, wwid, pp->wwid);
ev_remove_path(pp, vecs, 1);
- rescan_path(uev->udev);
needs_reinit = 1;
goto out;
} else {
@@ -2012,7 +2014,7 @@
/* If path became failed again or continue failed, should reset
* path san_path_err_forget_rate and path dis_reinstate_time to
- * start a new stable check.
+ * start a new stable check.
*/
if ((pp->state != PATH_UP) && (pp->state != PATH_GHOST) &&
(pp->state != PATH_DELAYED)) {
@@ -3031,6 +3033,10 @@
pthread_attr_destroy(&waiter_attr);
}
+#ifndef URCU_VERSION
+# define URCU_VERSION 0
+#endif
+#if (URCU_VERSION >= 0x000800)
/*
* Use a non-default call_rcu_data for child().
*
@@ -3040,6 +3046,9 @@
* can't be joined with pthread_join(), leaving a memory leak.
*
* Therefore we create our own, which can be destroyed and joined.
+ * The cleanup handler needs to call rcu_barrier(), which is only
+ * available in user-space RCU v0.8 and newer. See
+ * https://lists.lttng.org/pipermail/lttng-dev/2021-May/029958.html
*/
static struct call_rcu_data *setup_rcu(void)
{
@@ -3072,6 +3081,7 @@
}
rcu_unregister_thread();
}
+#endif /* URCU_VERSION */
static void cleanup_child(void)
{
@@ -3116,9 +3126,14 @@
init_unwinder();
mlockall(MCL_CURRENT | MCL_FUTURE);
signal_init();
+#if (URCU_VERSION >= 0x000800)
mp_rcu_data = setup_rcu();
-
- if (atexit(cleanup_rcu) || atexit(cleanup_child))
+ if (atexit(cleanup_rcu))
+ fprintf(stderr, "failed to register RCU cleanup handler\n");
+#else
+ rcu_init();
+#endif
+ if (atexit(cleanup_child))
fprintf(stderr, "failed to register cleanup handlers\n");
setup_thread_attr(&misc_attr, 64 * 1024, 0);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/multipathd/main.h
new/multipath-tools-0.8.6+32+suse.f11c192/multipathd/main.h
--- old/multipath-tools-0.8.6+10+suse.4771137/multipathd/main.h 2021-04-12
18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/multipathd/main.h 2021-08-12
18:02:05.000000000 +0200
@@ -13,6 +13,20 @@
DAEMON_STATUS_SIZE,
};
+enum remove_path_result {
+ REMOVE_PATH_FAILURE = 0x0, /* path could not be removed. It is still
+ * part of the kernel map, but its state
+ * is set to INIT_REMOVED, and it will be
+ * removed at the next possible occassion */
+ REMOVE_PATH_SUCCESS = 0x1, /* path was removed */
+ REMOVE_PATH_DELAY = 0x2, /* path is set to be removed later. it
+ * currently still exists and is part of the
+ * kernel map */
+ REMOVE_PATH_MAP_ERROR = 0x5, /* map was removed because of error. value
+ * includes REMOVE_PATH_SUCCESS bit
+ * because the path was also removed */
+};
+
struct prout_param_descriptor;
struct prin_resp;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/multipath-tools-0.8.6+10+suse.4771137/multipathd/multipathd.service
new/multipath-tools-0.8.6+32+suse.f11c192/multipathd/multipathd.service
--- old/multipath-tools-0.8.6+10+suse.4771137/multipathd/multipathd.service
2021-04-12 18:35:42.000000000 +0200
+++ new/multipath-tools-0.8.6+32+suse.f11c192/multipathd/multipathd.service
2021-08-12 18:02:05.000000000 +0200
@@ -8,6 +8,7 @@
Conflicts=shutdown.target
ConditionKernelCommandLine=!nompath
ConditionKernelCommandLine=!multipath=off
+ConditionVirtualization=!container
[Service]
Type=notify
++++++ multipath-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.jPQEJB/_old 2021-08-24 10:55:07.396301046 +0200
+++ /var/tmp/diff_new_pack.jPQEJB/_new 2021-08-24 10:55:07.396301046 +0200
@@ -1,5 +1,5 @@
name: multipath-tools
-version: 0.8.6+10+suse.4771137
-mtime: 1618245342
-commit: 47711374a3d8582b68b3cd76d26ba6bb4d652e26
+version: 0.8.6+32+suse.f11c192
+mtime: 1628784125
+commit: f11c1929ed6dc7bdcc5b699df1c397f298406eab