diff --git a/_service b/_service index 88cca9a..acf2f53 100644 --- a/_service +++ b/_service @@ -7,11 +7,12 @@ To update to a new release, change "revision" to the desired git commit hash and bump "version" if necessary + This will download branch first instead of tag. drbd-9.0 - 9.0.19~1 + 9.0.20~1 --> - 9.0.19~1+git.%h - 8e93a5d93b62db7cb3657557e0dafa1c8a1b0cc6 + 9.0.20~1+git.%h + drbd-9.0 diff --git a/drbd-9.0.19~1+git.8e93a5d9.tar.bz2 b/drbd-9.0.19~1+git.8e93a5d9.tar.bz2 deleted file mode 100644 index 16a7832..0000000 --- a/drbd-9.0.19~1+git.8e93a5d9.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3578c155c748ec0485d64a15d39734805278ba267302fe41f075fd74e367e6f5 -size 338041 diff --git a/drbd-9.0.20~1+git.7dce3c8b.tar.bz2 b/drbd-9.0.20~1+git.7dce3c8b.tar.bz2 new file mode 100644 index 0000000..ffc6e0f --- /dev/null +++ b/drbd-9.0.20~1+git.7dce3c8b.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8e52116da1c4e6b4150251740944e1a0558ca69420785306c8492f6b40c58d1 +size 341239 diff --git a/drbd.changes b/drbd.changes index cd46fa3..9cb0627 100644 --- a/drbd.changes +++ b/drbd.changes @@ -1,3 +1,46 @@ +------------------------------------------------------------------- +Fri Oct 11 02:32:09 UTC 2019 - nick wang + +- Update to drbd-9.0.20-1 + * fix a case of false split brain detection if a diskless node promotes + multiple times, by aligning the rules for generating a new current-UUID + on a diskless nodes with them on a node with disk + * check if we still have quorum by exchanging a drbd-ping with peers + before creating new current UUID after loosing one peer + * fix after weak handling to not interfere with reconciliation resyncs + * retry connect when one of the relevant flags changes during UUID exchange + * fix reconciliation resync if one of the secondary got an current-UUID update + * fix resync to make progress after it was paused by an other resync operation + * fix false split-brains when a resync source changes current-UUID during + resync operation + * fix restore of D_OUTDATED when the resource first only attached and + then the peer objects are created (in contrast to the usual, new-peer, + attach, connect) + * abort creating new current-UUID when writing to meta-data fails in + the moment where the new-current-UUID should be written + * removed DRBD marking itself as read-only when secondary; this flag + was exposed using the BLKROGET ioctl; that should be left to user-land + use; recent KVM checks that flag, and does not dare auto-promote when + set by DRBD + * fix a small memory-leak when creating peer devices + * fix a possible information leak of kernel memory that pads net-link packets + * completing implications of "allow-remote-read=no"; i.e. when not to + create a new-current-UUID as read-write access to the data set was lost; + also fail both reads and writes if reads are no longer possible + * new option value "rr-conflict=retry-connect"; that helps in scenarios with + quorum where stopping a service takes longer than a temporarily network + outage and DRBD's reconnect + * code cleanups, introduced enums for remaining magic numbers + * new kernel-backward-compatibility framework based on spatch/coccinelle, + replacing an unmaintainable moloch of C preprocessor hell; Merged the + complete kernel-compat submodule + * ships with pre-computed compat-patches for main distros' kernels; in case + an other kernel is found it tries to use local spatch, if that is not + installed the build process tries to use a LINBIT hosted web service + to create the compat patch ("spatch-as-a-service"). + * compat with up to Linux-5.3-rc2 +- Modify patch suse-coccinelle.patch to adopt spaas + ------------------------------------------------------------------- Wed Sep 20 08:22:12 UTC 2019 - nick wang diff --git a/drbd.spec b/drbd.spec index db74b48..7f48254 100644 --- a/drbd.spec +++ b/drbd.spec @@ -23,7 +23,7 @@ %endif %endif Name: drbd -Version: 9.0.19~1+git.8e93a5d9 +Version: 9.0.20~1+git.7dce3c8b Release: 0 Summary: Linux driver for the "Distributed Replicated Block Device" License: GPL-2.0-or-later @@ -86,14 +86,16 @@ ln -s ../scripts obj/ export WANT_DRBD_REPRODUCIBLE_BUILD=1 export CONFIG_BLK_DEV_DRBD=m export EXTRA_CFLAGS='-DVERSION=\"%{version}\"' -export ALWAYS_WANT_SPATCH='yes' +# Unset SPAAS or set as 'true' will use `spatch-as-a-service` from drbd.io +# when "coccinelle" not installed. Set SPAAS to 'false' to force an ERROR. +export SPAAS='false' for flavor in %{flavors_to_build}; do rm -rf $flavor cp -r source $flavor cp %{_sourcedir}/Module.supported $flavor export DRBDSRC="$PWD/obj/$flavor" - make %{?_smp_mflags} -C %{kernel_source $flavor} modules M=$PWD/$flavor + make %{?_smp_mflags} -C %{kernel_source $flavor} modules M=$PWD/$flavor SPAAS=${SPAAS} #Check the compat result cat $PWD/$flavor/compat.h diff --git a/drbd_git_revision b/drbd_git_revision index b9c8c62..b44ca2b 100644 --- a/drbd_git_revision +++ b/drbd_git_revision @@ -1 +1 @@ -GIT-hash: 8e93a5d93b62db7cb3657557e0dafa1c8a1b0cc6 +GIT-hash: 7dce3c8be99f4912f1490f9bb37f5aff6c873335 diff --git a/suse-coccinelle.patch b/suse-coccinelle.patch index 6b6e149..6c88918 100644 --- a/suse-coccinelle.patch +++ b/suse-coccinelle.patch @@ -1,44 +1,44 @@ -diff -Naur drbd-9.0.19~1+git.8e93a5d9.orig/drbd/Makefile drbd-9.0.19~1+git.8e93a5d9/drbd/Makefile ---- drbd-9.0.19~1+git.8e93a5d9.orig/drbd/Makefile 2019-09-23 13:27:35.397783666 +0800 -+++ drbd-9.0.19~1+git.8e93a5d9/drbd/Makefile 2019-09-23 13:30:43.378710223 +0800 -@@ -170,6 +170,9 @@ - ifeq ($(DRBD_BUILD_FROM_GIT),yes) - sources := $(filter-out drbd_strings.c drbd_buildtag.c,$(wildcard *.c)) - sources += $(wildcard drbd-headers/linux/*.h) -+else ifeq ($(ALWAYS_WANT_SPATCH),yes) -+ sources := $(filter-out drbd_strings.c drbd_buildtag.c,$(wildcard *.c)) -+ sources += $(wildcard drbd-headers/linux/*.h) - else - sources := - endif -@@ -196,9 +199,27 @@ - fi \ - done - @echo " SPATCH $(chksum)" -- @spatch --sp-file $(incdir)/.compat.cocci \ -- $(sources) \ -- --macro-file drbd-kernel-compat/cocci_macros.h > $@.tmp 2> $(incdir)/.spatch.stderr -+ $(eval libpath := $(shell rpm -ql coccinelle|grep standard.h|xargs dirname)) -+ @echo " sources: $(sources)" -+ @echo " libpath: $(libpath)" -+ @touch $@.tmp -+ @if [ -e $(incdir)/.compat.cocci ]; then \ -+ echo " GENCOCCIRULES .compat.cocci"; \ -+ cat $(incdir)/.compat.cocci; \ -+ spatch --sp-file $(incdir)/.compat.cocci \ -+ $(sources) \ -+ --macro-file drbd-kernel-compat/cocci_macros.h \ -+ --macro-file-builtins $(libpath)/standard.h \ -+ --iso-file $(libpath)/standard.iso >> $@.tmp 2> $(incdir)/.spatch.stderr; \ -+ fi -+ @if [ -e $@.tmp ]; then \ -+ echo " GENSPATCHFILE $@.tmp"; \ -+ cat $@.tmp; \ -+ fi -+ @if [ -e $(incdir)/.spatch.stderr ]; then \ -+ echo " GENSPATCHERR .spatch.stderr"; \ -+ cat $(incdir)/.spatch.stderr; \ -+ fi - @if [ -e $(incdir)/.compat.patch ]; then \ - cat $(incdir)/.compat.patch >> $@.tmp; \ - fi +diff -Naur drbd-9.0.20~0rc3+git.9c642cce.orig/drbd/drbd-kernel-compat/gen_compat_patch.sh drbd-9.0.20~0rc3+git.9c642cce/drbd/drbd-kernel-compat/gen_compat_patch.sh +--- drbd-9.0.20~0rc3+git.9c642cce.orig/drbd/drbd-kernel-compat/gen_compat_patch.sh 2019-10-09 15:10:24.932509799 +0800 ++++ drbd-9.0.20~0rc3+git.9c642cce/drbd/drbd-kernel-compat/gen_compat_patch.sh 2019-10-10 17:51:46.280918975 +0800 +@@ -41,6 +41,15 @@ + < drbd-kernel-compat/cocci/debugfs_compat_template.cocci.in \ + >> $incdir/.compat.cocci; + done; ++ ++ echo " APPLIED_COCCI_FILES "; ++ cat $incdir/applied_cocci_files.txt; ++ coccilibpath=$(rpm -ql coccinelle|grep standard.h|xargs dirname); ++ echo " SPATCH_SOURCES: "$*; ++ echo " COCCI_LIBPATH: "$coccilibpath; ++ echo " GENCOCCIRULES .compat.cocci"; ++ cat $incdir/.compat.cocci; ++ + echo " SPATCH $chksum "$K; + # Note: $* (or $@) is NOT make magic variable now, this is a shell script + # make $@, the target file, was passed as $1, and is now $compat_patch +@@ -49,7 +58,8 @@ + # argument away this is shell $@ respectively $* now. + # we know we don't have white-space in the argument list + +- command="spatch --sp-file $incdir/.compat.cocci $* --macro-file drbd-kernel-compat/cocci_macros.h --very-quiet > $compat_patch.tmp 2> $incdir/.spatch.stderr;" ++ command="spatch --sp-file $incdir/.compat.cocci $* --macro-file drbd-kernel-compat/cocci_macros.h --macro-file-builtins $coccilibpath/standard.h --iso-file $coccilibpath/standard.iso --very-quiet > $compat_patch.tmp 2> $incdir/.spatch.stderr;" ++ echo " SPATCH COMMAND $command "; + + if test -t 0; then + $SHELL -c "$command" +@@ -59,6 +69,14 @@ + # They may ignore INT and TERM; if you have to, use HUP. + /dev/null script --append $incdir/.spatch.tty.out --return --quiet --command "$command" + fi ++ ++ echo " GENSPATCHFILE $compat_patch.tmp "; ++ cat $compat_patch.tmp; ++ if [ -e $incdir/.spatch.stderr ]; then ++ echo " GENSPATCHERR .spatch.stderr"; ++ cat $incdir/.spatch.stderr; ++ fi ++ + if [ -e $incdir/.compat.patch ]; then + cat $incdir/.compat.patch >> $compat_patch.tmp; + fi;