File 0001-drbd-Switch-rename-to-timer_delete-_sync.patch of Package drbd
From a7cf5c765bc31c2656b5f96e4630e06ce975121b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christoph=20B=C3=B6hmwalder?=
<christoph.boehmwalder@linbit.com>
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 <tglx@linutronix.de>", "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