File fix-resync-after-resize.patch of Package drbd.24674
bsc#1123756, prevent a full resync after drbd upgrade
when offline resize with part of the disk used.
In 4fe4c962f(9.0.3), the calcating size is rework,
in which using p_size instead of last_known_size
(la_size) when connected in disk attaching. Then
led to a full resync after connected.
The patch will use previous effective size when
disk attach, then change to the full partition
size.
Since this issue only effect upgrade across commit
4fe4c962f, so only need to exist in SLE12SP2.
--- drbd-9.0.11+git.1e2bccdc.orig/drbd/drbd_nl.c 2019-02-22 11:32:13.942717470 +0800
+++ drbd-9.0.11+git.1e2bccdc.orig/drbd/drbd_nl.c 2019-02-22 20:19:02.845770336 +0800
@@ -1434,6 +1434,14 @@
if (drbd_get_capacity(device->this_bdev) != size ||
drbd_bm_capacity(device) != size) {
int err;
+
+ if (drbd_get_capacity(device->this_bdev) == 0 &&
+ drbd_bm_capacity(device) == 0 &&
+ prev.effective_size != 0 &&
+ size > prev.effective_size){
+ size = prev.effective_size;
+ }
+
err = drbd_bm_resize(device, size, !(flags & DDSF_NO_RESYNC));
if (unlikely(err)) {
/* currently there is only one error: ENOMEM! */