Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package drbd for openSUSE:Factory checked in 
at 2026-03-31 15:23:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/drbd (Old)
 and      /work/SRC/openSUSE:Factory/.drbd.new.1999 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "drbd"

Tue Mar 31 15:23:17 2026 rev:122 rq:1343855 version:9.1.23

Changes:
--------
--- /work/SRC/openSUSE:Factory/drbd/drbd.changes        2026-02-26 
18:58:36.750449129 +0100
+++ /work/SRC/openSUSE:Factory/.drbd.new.1999/drbd.changes      2026-03-31 
15:24:39.690249719 +0200
@@ -0,0 +1,12 @@
+Tue Mar 31 08:16:33 UTC 2026 - Glass Su <[email protected]>
+
+- drbd: replace suse special patches with upstream patches (boo#1261192)
+  * add upstream patches
+    + 0001-drbd-Switch-rename-to-timer_delete-_sync.patch
+    + 0001-compat-Rename-from_timer-to-timer_container_of.patch
+    + 0001-compat-test-for-pfn_t.patch
+  * remove suse special patches
+    - boo1244669-fix_build_error_against_kernel_v6.15.patch
+    - boo1248426-fix_build_error_against_kernel_v6.16.1.patch
+    - boo1251834-fix_build_error_against_kernel_v6.17.0.patch
+

Old:
----
  boo1244669-fix_build_error_against_kernel_v6.15.patch
  boo1248426-fix_build_error_against_kernel_v6.16.1.patch
  boo1251834-fix_build_error_against_kernel_v6.17.0.patch

New:
----
  0001-compat-Rename-from_timer-to-timer_container_of.patch
  0001-compat-test-for-pfn_t.patch
  0001-drbd-Switch-rename-to-timer_delete-_sync.patch

----------(Old B)----------
  Old:  * remove suse special patches
    - boo1244669-fix_build_error_against_kernel_v6.15.patch
    - boo1248426-fix_build_error_against_kernel_v6.16.1.patch
  Old:    - boo1244669-fix_build_error_against_kernel_v6.15.patch
    - boo1248426-fix_build_error_against_kernel_v6.16.1.patch
    - boo1251834-fix_build_error_against_kernel_v6.17.0.patch
  Old:    - boo1248426-fix_build_error_against_kernel_v6.16.1.patch
    - boo1251834-fix_build_error_against_kernel_v6.17.0.patch
----------(Old E)----------

----------(New B)----------
  New:    + 0001-drbd-Switch-rename-to-timer_delete-_sync.patch
    + 0001-compat-Rename-from_timer-to-timer_container_of.patch
    + 0001-compat-test-for-pfn_t.patch
  New:    + 0001-compat-Rename-from_timer-to-timer_container_of.patch
    + 0001-compat-test-for-pfn_t.patch
  * remove suse special patches
  New:  * add upstream patches
    + 0001-drbd-Switch-rename-to-timer_delete-_sync.patch
    + 0001-compat-Rename-from_timer-to-timer_container_of.patch
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ drbd.spec ++++++
--- /var/tmp/diff_new_pack.83e1eZ/_old  2026-03-31 15:24:40.814296499 +0200
+++ /var/tmp/diff_new_pack.83e1eZ/_new  2026-03-31 15:24:40.814296499 +0200
@@ -40,13 +40,13 @@
 Patch0002:  0001-drbd-build-deal-with-potentially-relative-paths-in-p.patch
 Patch0003:  0001-compat-follow-Linux-6.14-debugfs_change_name.patch
 Patch0004:  drbd-convert-bind-and-connect-callbacks-to-use-socka.patch
+Patch0005:  0001-drbd-Switch-rename-to-timer_delete-_sync.patch
+Patch0006:  0001-compat-Rename-from_timer-to-timer_container_of.patch
+Patch0007:  0001-compat-test-for-pfn_t.patch
 
 # suse special patch
 Patch1001:  bsc-1025089_fix-resync-finished-with-syncs-have-bits-set.patch
 Patch1002:  suse-coccinelle.patch
-Patch1003:  boo1244669-fix_build_error_against_kernel_v6.15.patch
-Patch1004:  boo1248426-fix_build_error_against_kernel_v6.16.1.patch
-Patch1005:  boo1251834-fix_build_error_against_kernel_v6.17.0.patch
 ########################
 
 #https://github.com/openSUSE/rpmlint-checks/blob/master/KMPPolicyCheck.py

++++++ 0001-compat-Rename-from_timer-to-timer_container_of.patch ++++++
>From 5e4459515f79e900a32a7ac0cbbc7297d383257e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christoph=20B=C3=B6hmwalder?=
 <[email protected]>
Date: Wed, 11 Jun 2025 17:34:48 +0200
Subject: [PATCH] compat: Rename from_timer() to timer_container_of()

Corresponds to upstream commit
41cb08555c41 ("treewide, timers: Rename from_timer() to timer_container_of()").
---
 .../cocci/timer_container_of__no_present.cocci      |  5 +++++
 drbd/drbd-kernel-compat/gen_patch_names.c           |  3 +++
 .../tests/have_timer_container_of.c                 | 13 +++++++++++++
 drbd/drbd_main.c                                    |  4 ++--
 drbd/drbd_receiver.c                                |  4 ++--
 drbd/drbd_req.c                                     |  2 +-
 drbd/drbd_sender.c                                  |  5 +++--
 7 files changed, 29 insertions(+), 7 deletions(-)
 create mode 100644 
drbd/drbd-kernel-compat/cocci/timer_container_of__no_present.cocci
 create mode 100644 drbd/drbd-kernel-compat/tests/have_timer_container_of.c

diff --git a/drbd/drbd-kernel-compat/cocci/timer_container_of__no_present.cocci 
b/drbd/drbd-kernel-compat/cocci/timer_container_of__no_present.cocci
new file mode 100644
index 000000000..241741f0f
--- /dev/null
+++ b/drbd/drbd-kernel-compat/cocci/timer_container_of__no_present.cocci
@@ -0,0 +1,5 @@
+@@
+@@
+- timer_container_of
++ from_timer
+ (...)
diff --git a/drbd/drbd-kernel-compat/gen_patch_names.c 
b/drbd/drbd-kernel-compat/gen_patch_names.c
index e702b2ba5..f178476ec 100644
--- a/drbd/drbd-kernel-compat/gen_patch_names.c
+++ b/drbd/drbd-kernel-compat/gen_patch_names.c
@@ -626,6 +626,9 @@ int main(int argc, char **argv)
        patch(1, "timer_delete", true, false,
              COMPAT_HAVE_TIMER_DELETE, "present");
 
+       patch(1, "timer_container_of", true, false,
+             COMPAT_HAVE_TIMER_CONTAINER_OF, "present");
+
 /* #define BLKDEV_ISSUE_ZEROOUT_EXPORTED */
 /* #define BLKDEV_ZERO_NOUNMAP */
 
diff --git a/drbd/drbd-kernel-compat/tests/have_timer_container_of.c 
b/drbd/drbd-kernel-compat/tests/have_timer_container_of.c
new file mode 100644
index 000000000..654994a10
--- /dev/null
+++ b/drbd/drbd-kernel-compat/tests/have_timer_container_of.c
@@ -0,0 +1,13 @@
+/* { "version": "v6.16-rc1", "commit": 
"41cb08555c4164996d67c78b3bf1c658075b75f1", "comment": "from_timer renamed to 
timer_container_of", "author": "Ingo Molnar <[email protected]>", "date": "Fri 
May 9 07:51:14 2025 +0200" } */
+
+#include <linux/timer.h>
+
+struct bar
+{
+       struct timer_list timer;
+};
+
+void foo(struct timer_list *t)
+{
+       struct bar *b = timer_container_of(b, t, timer);
+}
diff --git a/drbd/drbd_main.c b/drbd/drbd_main.c
index 44247e020..c1d66aba0 100644
--- a/drbd/drbd_main.c
+++ b/drbd/drbd_main.c
@@ -3448,7 +3448,7 @@ void drbd_flush_peer_acks(struct drbd_resource *resource)
 
 static void peer_ack_timer_fn(struct timer_list *t)
 {
-       struct drbd_resource *resource = from_timer(resource, t, 
peer_ack_timer);
+       struct drbd_resource *resource = timer_container_of(resource, t, 
peer_ack_timer);
 
        drbd_flush_peer_acks(resource);
 }
@@ -5669,7 +5669,7 @@ bool drbd_md_test_peer_flag(struct drbd_peer_device 
*peer_device, enum mdf_peer_
 
 static void md_sync_timer_fn(struct timer_list *t)
 {
-       struct drbd_device *device = from_timer(device, t, md_sync_timer);
+       struct drbd_device *device = timer_container_of(device, t, 
md_sync_timer);
        drbd_device_post_work(device, MD_SYNC);
 }
 
diff --git a/drbd/drbd_receiver.c b/drbd/drbd_receiver.c
index 4981a1d03..d1fac9260 100644
--- a/drbd/drbd_receiver.c
+++ b/drbd/drbd_receiver.c
@@ -862,7 +862,7 @@ void wait_initial_states_received(struct drbd_connection 
*connection)
 
 void connect_timer_fn(struct timer_list *t)
 {
-       struct drbd_connection *connection = from_timer(connection, t, 
connect_timer);
+       struct drbd_connection *connection = timer_container_of(connection, t, 
connect_timer);
 
        drbd_queue_work(&connection->sender_work, 
&connection->connect_timer_work);
 }
@@ -6334,7 +6334,7 @@ static void drbd_abort_twopc(struct drbd_resource 
*resource)
 
 void twopc_timer_fn(struct timer_list *t)
 {
-       struct drbd_resource *resource = from_timer(resource, t, twopc_timer);
+       struct drbd_resource *resource = timer_container_of(resource, t, 
twopc_timer);
        unsigned long irq_flags;
 
        write_lock_irqsave(&resource->state_rwlock, irq_flags);
diff --git a/drbd/drbd_req.c b/drbd/drbd_req.c
index 226f87677..bb23604b5 100644
--- a/drbd/drbd_req.c
+++ b/drbd/drbd_req.c
@@ -2588,7 +2588,7 @@ static bool net_timeout_reached(struct drbd_request 
*net_req,
 
 void request_timer_fn(struct timer_list *t)
 {
-       struct drbd_device *device = from_timer(device, t, request_timer);
+       struct drbd_device *device = timer_container_of(device, t, 
request_timer);
        struct drbd_resource *resource = device->resource;
        struct drbd_connection *connection;
        struct drbd_request *req_read, *req_write;
diff --git a/drbd/drbd_sender.c b/drbd/drbd_sender.c
index c3e085736..ba2163039 100644
--- a/drbd/drbd_sender.c
+++ b/drbd/drbd_sender.c
@@ -496,7 +496,7 @@ int w_send_uuids(struct drbd_work *w, int cancel)
 
 void resync_timer_fn(struct timer_list *t)
 {
-       struct drbd_peer_device *peer_device = from_timer(peer_device, t, 
resync_timer);
+       struct drbd_peer_device *peer_device = timer_container_of(peer_device, 
t, resync_timer);
 
        drbd_queue_work_if_unqueued(
                &peer_device->connection->sender_work,
@@ -2067,7 +2067,8 @@ void drbd_rs_controller_reset(struct drbd_peer_device 
*peer_device)
 
 void start_resync_timer_fn(struct timer_list *t)
 {
-       struct drbd_peer_device *peer_device = from_timer(peer_device, t, 
start_resync_timer);
+       struct drbd_peer_device *peer_device = timer_container_of(peer_device, 
t,
+                       start_resync_timer);
        drbd_peer_device_post_work(peer_device, RS_START);
 }
 
-- 
2.51.0


++++++ 0001-compat-test-for-pfn_t.patch ++++++
>From b9e7ceaeb4937ccece18d5353fd10b57201a0726 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christoph=20B=C3=B6hmwalder?=
 <[email protected]>
Date: Tue, 11 Nov 2025 17:59:58 +0100
Subject: [PATCH] compat: test for pfn_t

The pfn_unused hack can also be removed since we don't support any
kernels before 4.18 anymore.
---
 drbd/drbd-kernel-compat/gen_patch_names.c  | 10 ++++++++++
 drbd/drbd-kernel-compat/tests/have_pfn_t.c |  5 +++++
 drbd/drbd_dax_pmem.c                       |  7 ++-----
 3 files changed, 17 insertions(+), 5 deletions(-)
 create mode 100644 drbd/drbd-kernel-compat/tests/have_pfn_t.c

diff --git a/drbd/drbd-kernel-compat/gen_patch_names.c 
b/drbd/drbd-kernel-compat/gen_patch_names.c
index f178476ec..39f19d802 100644
--- a/drbd/drbd-kernel-compat/gen_patch_names.c
+++ b/drbd/drbd-kernel-compat/gen_patch_names.c
@@ -521,8 +521,18 @@ int main(int argc, char **argv)
        patch(1, "genhd_fl_no_part", true, false,
              COMPAT_HAVE_GENHD_FL_NO_PART, "present");
 
+#if defined(COMPAT_HAVE_PFN_T)
+       /* A few notes:
+        * 1. dax_direct_access_takes_mode depends on the pfn_t type, so if we 
don't have that, we
+        *    can't rely on the result of the test.
+        * 2. If pfn_t does not exist, the kernel is new enough that 
dax_direct_access definitely
+        *    takes the mode parameter anyway, making the 
dax_direct_access_takes_mode test redundant.
+        * 3. pfn_t is only used within the dax_direct_access_takes_mode test, 
not in the actual
+        *    code, so we don't need a separate cocci patch for it. */
+
        patch(1, "dax_direct_access", true, false,
              COMPAT_DAX_DIRECT_ACCESS_TAKES_MODE, "takes_mode");
+#endif
 
        patch(1, "bdev_max_discard_sectors", true, false,
              COMPAT_HAVE_BDEV_MAX_DISCARD_SECTORS, "present");
diff --git a/drbd/drbd-kernel-compat/tests/have_pfn_t.c 
b/drbd/drbd-kernel-compat/tests/have_pfn_t.c
new file mode 100644
index 000000000..7a3e7998e
--- /dev/null
+++ b/drbd/drbd-kernel-compat/tests/have_pfn_t.c
@@ -0,0 +1,5 @@
+/* { "version": "v6.17-rc1", "commit": 
"21aa65bf82a78c1e70447a45a85e533689b7f1a7", "comment": "pfn_t was removed", 
"author": "Alistair Popple <[email protected]>", "date": "Thu Jun 19 18:58:05 
2025 +1000" } */
+
+#include <linux/pfn_t.h>
+
+pfn_t foo;
diff --git a/drbd/drbd_dax_pmem.c b/drbd/drbd_dax_pmem.c
index fff09db74..6f29dfd76 100644
--- a/drbd/drbd_dax_pmem.c
+++ b/drbd/drbd_dax_pmem.c
@@ -22,7 +22,6 @@
 #include <linux/vmalloc.h>
 #include <linux/slab.h>
 #include <linux/dax.h>
-#include <linux/pfn_t.h>
 #include <linux/libnvdimm.h>
 #include <linux/blkdev.h>
 #include "drbd_int.h"
@@ -35,11 +34,10 @@ static int map_superblock_for_dax(struct drbd_backing_dev 
*bdev, struct dax_devi
        pgoff_t pgoff = bdev->md.md_offset >> (PAGE_SHIFT - SECTOR_SHIFT);
        void *kaddr;
        long len;
-       pfn_t pfn_unused; /* before 4.18 it is required to pass in non-NULL */
        int id;
 
        id = dax_read_lock();
-       len = dax_direct_access(dax_dev, pgoff, want, DAX_ACCESS, &kaddr, 
&pfn_unused);
+       len = dax_direct_access(dax_dev, pgoff, want, DAX_ACCESS, &kaddr, NULL);
        dax_read_unlock(id);
 
        if (len < want)
@@ -93,11 +91,10 @@ int drbd_dax_map(struct drbd_backing_dev *bdev)
        long al_offset_byte = (al_sector - first_sector) << SECTOR_SHIFT;
        void *kaddr;
        long len;
-       pfn_t pfn_unused; /* before 4.18 it is required to pass in non-NULL */
        int id;
 
        id = dax_read_lock();
-       len = dax_direct_access(dax_dev, pgoff, want, DAX_ACCESS, &kaddr, 
&pfn_unused);
+       len = dax_direct_access(dax_dev, pgoff, want, DAX_ACCESS, &kaddr, NULL);
        dax_read_unlock(id);
 
        if (len < want)
-- 
2.51.0


++++++ 0001-drbd-Switch-rename-to-timer_delete-_sync.patch ++++++
>From a7cf5c765bc31c2656b5f96e4630e06ce975121b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christoph=20B=C3=B6hmwalder?=
 <[email protected]>
Date: Tue, 6 May 2025 16:19:14 +0200
Subject: [PATCH] drbd: Switch/rename to timer_delete[_sync]()

Following upstream commit 8fa7292f ("treewide: Switch/rename to 
timer_delete[_sync]()").
---
 .../cocci/timer_delete__no_present.cocci              | 11 +++++++++++
 drbd/drbd-kernel-compat/gen_patch_names.c             |  3 +++
 drbd/drbd-kernel-compat/tests/have_timer_delete.c     |  8 ++++++++
 drbd/drbd_main.c                                      |  4 ++--
 drbd/drbd_nl.c                                        |  2 +-
 drbd/drbd_receiver.c                                  |  8 ++++----
 drbd/drbd_state.c                                     |  2 +-
 7 files changed, 30 insertions(+), 8 deletions(-)
 create mode 100644 drbd/drbd-kernel-compat/cocci/timer_delete__no_present.cocci
 create mode 100644 drbd/drbd-kernel-compat/tests/have_timer_delete.c

diff --git a/drbd/drbd-kernel-compat/cocci/timer_delete__no_present.cocci 
b/drbd/drbd-kernel-compat/cocci/timer_delete__no_present.cocci
new file mode 100644
index 000000000..7488fceac
--- /dev/null
+++ b/drbd/drbd-kernel-compat/cocci/timer_delete__no_present.cocci
@@ -0,0 +1,11 @@
+@@
+@@
+(
+- timer_delete
++ del_timer
+ (...)
+|
+- timer_delete_sync
++ del_timer_sync
+ (...)
+)
diff --git a/drbd/drbd-kernel-compat/gen_patch_names.c 
b/drbd/drbd-kernel-compat/gen_patch_names.c
index 1362ed390..e702b2ba5 100644
--- a/drbd/drbd-kernel-compat/gen_patch_names.c
+++ b/drbd/drbd-kernel-compat/gen_patch_names.c
@@ -623,6 +623,9 @@ int main(int argc, char **argv)
        patch(1, "struct_sockaddr_unsized", true, false,
              COMPAT_HAVE_STRUCT_SOCKADDR_UNSIZED, "present");
 
+       patch(1, "timer_delete", true, false,
+             COMPAT_HAVE_TIMER_DELETE, "present");
+
 /* #define BLKDEV_ISSUE_ZEROOUT_EXPORTED */
 /* #define BLKDEV_ZERO_NOUNMAP */
 
diff --git a/drbd/drbd-kernel-compat/tests/have_timer_delete.c 
b/drbd/drbd-kernel-compat/tests/have_timer_delete.c
new file mode 100644
index 000000000..4cb5074bd
--- /dev/null
+++ b/drbd/drbd-kernel-compat/tests/have_timer_delete.c
@@ -0,0 +1,8 @@
+/* { "version": "v6.15", "commit": "8fa7292fee5c5240402371ea89ab285ec856c916", 
"comment": "timer_delete introduced", "author": "Thomas Gleixner 
<[email protected]>", "date": "Sat Apr 5 10:17:26 2025 +0200" } */
+
+#include <linux/timer.h>
+
+int foo(struct timer_list *t)
+{
+       return timer_delete(t);
+}
diff --git a/drbd/drbd_main.c b/drbd/drbd_main.c
index edb187707..44247e020 100644
--- a/drbd/drbd_main.c
+++ b/drbd/drbd_main.c
@@ -4198,7 +4198,7 @@ static void shutdown_connect_timer(struct drbd_connection 
*connection)
 
 void del_connect_timer(struct drbd_connection *connection)
 {
-       if (del_timer_sync(&connection->connect_timer)) {
+       if (timer_delete_sync(&connection->connect_timer)) {
                kref_debug_put(&connection->kref_debug, 11);
                kref_put(&connection->kref, drbd_destroy_connection);
        }
@@ -4433,7 +4433,7 @@ static int __drbd_md_sync(struct drbd_device *device, 
bool maybe)
        if (!buffer)
                goto out;
 
-       del_timer(&device->md_sync_timer);
+       timer_delete(&device->md_sync_timer);
        /* timer may be rearmed by drbd_md_mark_dirty() now. */
 
        if (test_and_clear_bit(MD_DIRTY, &device->flags) || !maybe) {
diff --git a/drbd/drbd_nl.c b/drbd/drbd_nl.c
index baa32e415..2b4ef3749 100644
--- a/drbd/drbd_nl.c
+++ b/drbd/drbd_nl.c
@@ -1715,7 +1715,7 @@ drbd_determine_dev_size(struct drbd_device *device, 
sector_t peer_current_size,
                /* We do some synchronous IO below, which may take some time.
                 * Clear the timer, to avoid scary "timer expired!" messages,
                 * "Superblock" is written out at least twice below, anyways. */
-               del_timer(&device->md_sync_timer);
+               timer_delete(&device->md_sync_timer);
 
                /* We won't change the "al-extents" setting, we just may need
                 * to move the on-disk location of the activity log ringbuffer.
diff --git a/drbd/drbd_receiver.c b/drbd/drbd_receiver.c
index 6736b5194..4981a1d03 100644
--- a/drbd/drbd_receiver.c
+++ b/drbd/drbd_receiver.c
@@ -7125,7 +7125,7 @@ retry:
                                drbd_err(resource, "FATAL: Local commit of 
prepared %u failed! \n",
                                         reply->tid);
 
-                       del_timer(&resource->twopc_timer);
+                       timer_delete(&resource->twopc_timer);
                }
 
                nested_twopc_request(resource, &request);
@@ -8548,9 +8548,9 @@ static void cleanup_resync_leftovers(struct 
drbd_peer_device *peer_device)
        atomic_set(&peer_device->rs_pending_cnt, 0);
        wake_up(&peer_device->device->misc_wait);
 
-       del_timer_sync(&peer_device->resync_timer);
+       timer_delete_sync(&peer_device->resync_timer);
        resync_timer_fn(&peer_device->resync_timer);
-       del_timer_sync(&peer_device->start_resync_timer);
+       timer_delete_sync(&peer_device->start_resync_timer);
 }
 
 static void drain_resync_activity(struct drbd_connection *connection)
@@ -8665,7 +8665,7 @@ static void cleanup_remote_state_change(struct 
drbd_connection *connection)
                drbd_info(connection, "Aborting %s state change %u commit not 
possible\n",
                          remote ? "remote" : "local", reply->tid);
                if (remote) {
-                       del_timer(&resource->twopc_timer);
+                       timer_delete(&resource->twopc_timer);
                        __clear_remote_state_change(resource);
                } else {
                        enum alt_rv alt_rv = 
abort_local_transaction(connection, 0);
diff --git a/drbd/drbd_state.c b/drbd/drbd_state.c
index 0e693c8e3..9ecc713d5 100644
--- a/drbd/drbd_state.c
+++ b/drbd/drbd_state.c
@@ -4171,7 +4171,7 @@ static int w_after_state_change(struct drbd_work *w, int 
unused)
                                        drbd_disk_str(device->disk_state[NOW]));
 
                        /* we may need to cancel the md_sync timer */
-                       del_timer_sync(&device->md_sync_timer);
+                       timer_delete_sync(&device->md_sync_timer);
 
                        if (have_ldev)
                                
send_new_state_to_all_peer_devices(state_change, n_device);
-- 
2.51.0

Reply via email to