Hello community,

here is the log from the commit of package drbd for openSUSE:Factory checked in 
at 2018-02-12 10:15:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/drbd (Old)
 and      /work/SRC/openSUSE:Factory/.drbd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "drbd"

Mon Feb 12 10:15:40 2018 rev:66 rq:575375 version:9.0.12+git.969e477d

Changes:
--------
--- /work/SRC/openSUSE:Factory/drbd/drbd.changes        2018-01-25 
12:41:32.383864789 +0100
+++ /work/SRC/openSUSE:Factory/.drbd.new/drbd.changes   2018-02-12 
10:15:41.700467352 +0100
@@ -1,0 +2,8 @@
+Sun Feb 11 06:39:19 UTC 2018 - nw...@suse.com
+
+- bsc#1080458, enable build with kernel-rt on x86_64. 
+- bsc#1080459, support build against 4.15.0.
+  setup_timer() change to timer_setup()
+- Add patch support-timer-setup.patch
+
+-------------------------------------------------------------------

Old:
----
  drbd-9.0.12+git.7eb4aef.tar.bz2

New:
----
  drbd-9.0.12+git.969e477d.tar.bz2
  support-timer-setup.patch

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

Other differences:
------------------
++++++ drbd.spec ++++++
--- /var/tmp/diff_new_pack.2MN1As/_old  2018-02-12 10:15:42.408441840 +0100
+++ /var/tmp/diff_new_pack.2MN1As/_new  2018-02-12 10:15:42.408441840 +0100
@@ -19,12 +19,12 @@
 
 %if ! 0%{?is_opensuse}
 %ifarch x86_64
-%define buildrt 0
+%define buildrt 1
 %endif
 %endif
 
 Name:           drbd
-Version:        9.0.12+git.7eb4aef
+Version:        9.0.12+git.969e477d
 Release:        0
 Summary:        DRBD driver for Linux
 License:        GPL-2.0+
@@ -36,6 +36,7 @@
 Source2:        Module.supported
 Source3:        drbd_git_revision
 Patch1:         fix-resync-finished-with-syncs-have-bits-set.patch
+Patch2:         support-timer-setup.patch
 BuildRequires:  kernel-source
 BuildRequires:  kernel-syms
 BuildRequires:  libelf-devel
@@ -69,6 +70,7 @@
 %prep
 %setup -q -n drbd-%{version}
 %patch1 -p1
+%patch2 -p1
 
 mkdir source
 cp -a drbd/. source/. || :

++++++ _service ++++++
--- /var/tmp/diff_new_pack.2MN1As/_old  2018-02-12 10:15:42.476439390 +0100
+++ /var/tmp/diff_new_pack.2MN1As/_new  2018-02-12 10:15:42.476439390 +0100
@@ -10,7 +10,7 @@
     <param name="version">9.0.12</param>
 -->
     <param name="versionformat">9.0.12+git.%h</param>
-    <param name="revision">7eb4aef4abbfba8ebb1afbcc30574df74db0063e</param>
+    <param name="revision">969e477dcfdf31c8b0462b7c725dda56b70371b2</param>
   </service>
 
   <service name="recompress" mode="disabled">

++++++ drbd-9.0.12+git.7eb4aef.tar.bz2 -> drbd-9.0.12+git.969e477d.tar.bz2 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drbd-9.0.12+git.7eb4aef/.gitmodules 
new/drbd-9.0.12+git.969e477d/.gitmodules
--- old/drbd-9.0.12+git.7eb4aef/.gitmodules     2018-01-24 04:48:18.161011514 
+0100
+++ new/drbd-9.0.12+git.969e477d/.gitmodules    1970-01-01 01:00:00.000000000 
+0100
@@ -1,10 +0,0 @@
-[submodule "drbd/drbd-kernel-compat"]
-       path = drbd/drbd-kernel-compat
-       url = git://github.com/LINBIT/drbd-kernel-compat.git
-       update = rebase
-       fetchRecurseSubmodules = true
-[submodule "drbd-headers"]
-       path = drbd-headers
-       url = git://github.com/LINBIT/drbd-headers.git
-       update = rebase
-       fetchRecurseSubmodules = true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drbd-9.0.12+git.7eb4aef/drbd/drbd_receiver.c 
new/drbd-9.0.12+git.969e477d/drbd/drbd_receiver.c
--- old/drbd-9.0.12+git.7eb4aef/drbd/drbd_receiver.c    2018-01-24 
04:48:18.167011514 +0100
+++ new/drbd-9.0.12+git.969e477d/drbd/drbd_receiver.c   2018-02-02 
11:53:12.000000000 +0100
@@ -6253,6 +6253,13 @@
         }
 
        peer_disk_state = peer_state.disk;
+
+       if (peer_disk_state > D_DISKLESS && peer_device->bitmap_index == -1) {
+               drbd_warn(device, "The peer is configured to be diskless but 
presents %s\n",
+                         drbd_disk_str(peer_disk_state));
+               goto fail;
+       }
+
        if (peer_state.disk == D_NEGOTIATING) {
                peer_disk_state = peer_device->uuid_flags & 
UUID_FLAG_INCONSISTENT ?
                        D_INCONSISTENT : D_CONSISTENT;
@@ -6902,8 +6909,17 @@
                        device->bm_resync_fo = bit;
                break;
        default:
+#if 0
+               /* Used to be correct.
+                * But nowadays, we may receive "out-of-sync" information 
indirectly,
+                * if we are not directly connected to a secondary, but 
connected to
+                * some other node to which is.
+                * If we want to keep asserting something,
+                * we need to add in the global connection status somehow. */
                drbd_err(device, "ASSERT FAILED cstate = %s, expected: 
WFSyncUUID|WFBitMapT|Behind\n",
-                               drbd_repl_str(peer_device->repl_state[NOW]));
+                               drbd_repl_str(peer_device->repl_state[NOW]))
+#endif
+               ;
        }
 
        drbd_set_out_of_sync(peer_device, sector, be32_to_cpu(p->blksize));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/drbd-9.0.12+git.7eb4aef/drbd/drbd_transport_tcp.c 
new/drbd-9.0.12+git.969e477d/drbd/drbd_transport_tcp.c
--- old/drbd-9.0.12+git.7eb4aef/drbd/drbd_transport_tcp.c       2018-01-24 
04:48:18.170011514 +0100
+++ new/drbd-9.0.12+git.969e477d/drbd/drbd_transport_tcp.c      2018-02-02 
11:53:12.000000000 +0100
@@ -891,6 +891,7 @@
        struct socket *dsocket, *csocket;
        struct net_conf *nc;
        int timeout, err;
+       int one = 1;
        bool ok;
 
        dsocket = NULL;
@@ -1074,6 +1075,10 @@
        dsocket->sk->sk_sndtimeo = timeout;
        csocket->sk->sk_sndtimeo = timeout;
 
+       err = kernel_setsockopt(dsocket, SOL_SOCKET, SO_KEEPALIVE, (char 
*)&one, sizeof(one));
+       if (err)
+               tr_warn(transport, "Failed to enable SO_KEEPALIVE %d\n", err);
+
        return 0;
 
 out_eagain:

++++++ drbd_git_revision ++++++
--- /var/tmp/diff_new_pack.2MN1As/_old  2018-02-12 10:15:42.828426706 +0100
+++ /var/tmp/diff_new_pack.2MN1As/_new  2018-02-12 10:15:42.832426561 +0100
@@ -1 +1 @@
-GIT-hash: 7eb4aef4abbfba8ebb1afbcc30574df74db0063e
+GIT-hash: 969e477dcfdf31c8b0462b7c725dda56b70371b2

++++++ support-timer-setup.patch ++++++
diff -Naur drbd-9.0.12+git.969e477d.orig/drbd/drbd_int.h 
drbd-9.0.12+git.969e477d/drbd/drbd_int.h
--- drbd-9.0.12+git.969e477d.orig/drbd/drbd_int.h       2018-02-11 
17:28:38.748598711 +0800
+++ drbd-9.0.12+git.969e477d/drbd/drbd_int.h    2018-02-11 17:28:50.168678009 
+0800
@@ -1860,7 +1860,11 @@
 extern void drbd_rs_controller_reset(struct drbd_peer_device *);
 extern void drbd_ping_peer(struct drbd_connection *connection);
 extern struct drbd_peer_device *peer_device_by_node_id(struct drbd_device *, 
int);
+#ifndef COMPAT_HAVE_SETUP_TIMER
+extern void repost_up_to_date_fn(struct timer_list *t);
+#else
 extern void repost_up_to_date_fn(unsigned long data);
+#endif
 
 static inline void ov_out_of_sync_print(struct drbd_peer_device *peer_device)
 {
@@ -1890,8 +1894,13 @@
 extern int w_start_resync(struct drbd_work *, int);
 extern int w_send_uuids(struct drbd_work *, int);
 
+#ifndef COMPAT_HAVE_SETUP_TIMER
+extern void resync_timer_fn(struct timer_list *);
+extern void start_resync_timer_fn(struct timer_list *);
+#else
 extern void resync_timer_fn(unsigned long data);
 extern void start_resync_timer_fn(unsigned long data);
+#endif
 
 extern void drbd_endio_write_sec_final(struct drbd_peer_request *peer_req);
 
@@ -1974,7 +1983,11 @@
 extern struct drbd_connection *drbd_connection_by_node_id(struct drbd_resource 
*, int);
 extern struct drbd_connection *drbd_get_connection_by_node_id(struct 
drbd_resource *, int);
 extern void queue_queued_twopc(struct drbd_resource *resource);
+#ifndef COMPAT_HAVE_SETUP_TIMER
+extern void queued_twopc_timer_fn(struct timer_list *);
+#else
 extern void queued_twopc_timer_fn(unsigned long data);
+#endif
 extern bool drbd_have_local_disk(struct drbd_resource *resource);
 extern enum drbd_state_rv drbd_support_2pc_resize(struct drbd_resource 
*resource);
 extern enum determine_dev_size
@@ -2021,8 +2034,13 @@
 void drbd_bump_write_ordering(struct drbd_resource *resource, struct 
drbd_backing_dev *bdev,
                              enum write_ordering_e wo);
 
+#ifndef COMPAT_HAVE_SETUP_TIMER
+extern void twopc_timer_fn(struct timer_list *);
+extern void connect_timer_fn(struct timer_list *);
+#else
 extern void twopc_timer_fn(unsigned long);
 extern void connect_timer_fn(unsigned long);
+#endif
 
 /* drbd_proc.c */
 extern struct proc_dir_entry *drbd_proc;
diff -Naur 
drbd-9.0.12+git.969e477d.orig/drbd/drbd-kernel-compat/tests/have_setup_timer.c 
drbd-9.0.12+git.969e477d/drbd/drbd-kernel-compat/tests/have_setup_timer.c
--- 
drbd-9.0.12+git.969e477d.orig/drbd/drbd-kernel-compat/tests/have_setup_timer.c  
    1970-01-01 08:00:00.000000000 +0800
+++ drbd-9.0.12+git.969e477d/drbd/drbd-kernel-compat/tests/have_setup_timer.c   
2018-02-11 17:28:50.168678009 +0800
@@ -0,0 +1,7 @@
+#include <linux/timer.h>
+
+void dummy(struct timer_list *timer, void (*function)(unsigned long), unsigned 
long data)
+{
+    setup_timer(timer, function, data);
+    return;
+}
diff -Naur drbd-9.0.12+git.969e477d.orig/drbd/drbd_main.c 
drbd-9.0.12+git.969e477d/drbd/drbd_main.c
--- drbd-9.0.12+git.969e477d.orig/drbd/drbd_main.c      2018-02-11 
17:28:38.748598711 +0800
+++ drbd-9.0.12+git.969e477d/drbd/drbd_main.c   2018-02-11 17:34:37.499091262 
+0800
@@ -76,7 +76,11 @@
 
 static int drbd_open(struct block_device *bdev, fmode_t mode);
 static DRBD_RELEASE_RETURN drbd_release(struct gendisk *gd, fmode_t mode);
+#ifndef COMPAT_HAVE_SETUP_TIMER
+static void md_sync_timer_fn(struct timer_list *t);
+#else
 static void md_sync_timer_fn(unsigned long data);
+#endif
 static int w_bitmap_io(struct drbd_work *w, int unused);
 static int flush_send_buffer(struct drbd_connection *connection, enum 
drbd_stream drbd_stream);
 
@@ -3192,9 +3196,15 @@
        spin_unlock_irq(&resource->req_lock);
 }
 
+#ifndef COMPAT_HAVE_SETUP_TIMER
+static void peer_ack_timer_fn(struct timer_list *t)
+{
+       struct drbd_resource *resource = from_timer(resource, t, 
peer_ack_timer);
+#else
 static void peer_ack_timer_fn(unsigned long data)
 {
        struct drbd_resource *resource = (struct drbd_resource *) data;
+#endif
 
        drbd_flush_peer_acks(resource);
 }
@@ -3309,8 +3319,13 @@
        INIT_LIST_HEAD(&resource->connections);
        INIT_LIST_HEAD(&resource->transfer_log);
        INIT_LIST_HEAD(&resource->peer_ack_list);
+#ifndef COMPAT_HAVE_SETUP_TIMER
+       timer_setup(&resource->peer_ack_timer, peer_ack_timer_fn, 0);
+       timer_setup(&resource->repost_up_to_date_timer, repost_up_to_date_fn, 
0);
+#else
        setup_timer(&resource->peer_ack_timer, peer_ack_timer_fn, (unsigned 
long) resource);
        setup_timer(&resource->repost_up_to_date_timer, repost_up_to_date_fn, 
(unsigned long) resource);
+#endif
        sema_init(&resource->state_sem, 1);
        resource->role[NOW] = R_SECONDARY;
        if (set_resource_options(resource, res_opts))
@@ -3327,11 +3342,19 @@
        init_waitqueue_head(&resource->twopc_wait);
        init_waitqueue_head(&resource->barrier_wait);
        INIT_LIST_HEAD(&resource->twopc_parents);
+#ifndef COMPAT_HAVE_SETUP_TIMER
+       timer_setup(&resource->twopc_timer, twopc_timer_fn, 0);
+#else
        setup_timer(&resource->twopc_timer, twopc_timer_fn, (unsigned long) 
resource);
+#endif
        INIT_LIST_HEAD(&resource->twopc_work.list);
        INIT_LIST_HEAD(&resource->queued_twopc);
        spin_lock_init(&resource->queued_twopc_lock);
+#ifndef COMPAT_HAVE_SETUP_TIMER
+       timer_setup(&resource->queued_twopc_timer, queued_twopc_timer_fn, 0);
+#else
        setup_timer(&resource->queued_twopc_timer, queued_twopc_timer_fn, 
(unsigned long) resource);
+#endif
        drbd_init_workqueue(&resource->work);
        drbd_thread_init(resource, &resource->worker, drbd_worker, "worker");
        drbd_thread_start(&resource->worker);
@@ -3391,9 +3414,15 @@
        mutex_init(&connection->mutex[CONTROL_STREAM]);
 
        INIT_LIST_HEAD(&connection->connect_timer_work.list);
+#ifndef COMPAT_HAVE_SETUP_TIMER
+       timer_setup(&connection->connect_timer,
+                   connect_timer_fn,
+                   0);
+#else
        setup_timer(&connection->connect_timer,
                    connect_timer_fn,
                    (unsigned long) connection);
+#endif
 
        drbd_thread_init(resource, &connection->receiver, drbd_receiver, 
"receiver");
        connection->receiver.connection = connection;
@@ -3504,16 +3533,26 @@
                kfree(peer_device);
                return NULL;
        }
-
+#ifndef COMPAT_HAVE_SETUP_TIMER
+       timer_setup(&peer_device->start_resync_timer,
+                       start_resync_timer_fn,
+                       0);
+#else
        setup_timer(&peer_device->start_resync_timer,
                        start_resync_timer_fn,
                        (unsigned long) peer_device);
-
+#endif
        INIT_LIST_HEAD(&peer_device->resync_work.list);
        peer_device->resync_work.cb  = w_resync_timer;
+#ifndef COMPAT_HAVE_SETUP_TIMER
+       timer_setup(&peer_device->resync_timer,
+                       resync_timer_fn,
+                       0);
+#else
        setup_timer(&peer_device->resync_timer,
                        resync_timer_fn,
                        (unsigned long) peer_device);
+#endif
 
        INIT_LIST_HEAD(&peer_device->propagate_uuids_work.list);
        peer_device->propagate_uuids_work.cb = w_send_uuids;
@@ -3609,12 +3648,21 @@
        spin_lock_init(&device->pending_bitmap_work.q_lock);
        INIT_LIST_HEAD(&device->pending_bitmap_work.q);
 
+#ifndef COMPAT_HAVE_SETUP_TIMER
+       timer_setup(&device->md_sync_timer,
+                       md_sync_timer_fn,
+                       0);
+       timer_setup(&device->request_timer,
+                       request_timer_fn,
+                       0);
+#else
        setup_timer(&device->md_sync_timer,
                        md_sync_timer_fn,
                        (unsigned long) device);
        setup_timer(&device->request_timer,
                        request_timer_fn,
                        (unsigned long) device);
+#endif
 
        init_waitqueue_head(&device->misc_wait);
        init_waitqueue_head(&device->al_wait);
@@ -5191,9 +5239,15 @@
        return md->peers[peer_device->node_id].flags & flag;
 }
 
+#ifndef COMPAT_HAVE_SETUP_TIMER
+static void md_sync_timer_fn(struct timer_list *t)
+{
+       struct drbd_device *device = from_timer(device, t, md_sync_timer);
+#else
 static void md_sync_timer_fn(unsigned long data)
 {
        struct drbd_device *device = (struct drbd_device *) data;
+#endif
        drbd_device_post_work(device, MD_SYNC);
 }
 
diff -Naur drbd-9.0.12+git.969e477d.orig/drbd/drbd_receiver.c 
drbd-9.0.12+git.969e477d/drbd/drbd_receiver.c
--- drbd-9.0.12+git.969e477d.orig/drbd/drbd_receiver.c  2018-02-11 
17:28:38.748598711 +0800
+++ drbd-9.0.12+git.969e477d/drbd/drbd_receiver.c       2018-02-11 
17:28:50.172678024 +0800
@@ -596,9 +596,15 @@
        return err;
 }
 
+#ifndef COMPAT_HAVE_SETUP_TIMER
+void connect_timer_fn(struct timer_list *t)
+{
+       struct drbd_connection *connection = from_timer(connection, t, 
connect_timer);
+#else
 void connect_timer_fn(unsigned long data)
 {
        struct drbd_connection *connection = (struct drbd_connection *) data;
+#endif
        struct drbd_resource *resource = connection->resource;
        unsigned long irq_flags;
 
@@ -5327,10 +5333,17 @@
        return 0;
 }
 
+#ifndef COMPAT_HAVE_SETUP_TIMER
+void twopc_timer_fn(struct timer_list *t)
+{
+       unsigned long irq_flags;
+       struct drbd_resource *resource = from_timer(resource, t, twopc_timer);
+#else
 void twopc_timer_fn(unsigned long data)
 {
        struct drbd_resource *resource = (struct drbd_resource *) data;
        unsigned long irq_flags;
+#endif
 
        spin_lock_irqsave(&resource->req_lock, irq_flags);
        if (resource->twopc_work.cb == NULL) {
@@ -5582,12 +5595,21 @@
        return 0;
 }
 
+#ifndef COMPAT_HAVE_SETUP_TIMER
+void queued_twopc_timer_fn(struct timer_list *time)
+{
+       struct queued_twopc *q;
+       unsigned long irq_flags;
+       struct drbd_resource *resource = from_timer(resource, time, 
queued_twopc_timer);
+       unsigned long t = twopc_timeout(resource) / 4;
+#else
 void queued_twopc_timer_fn(unsigned long data)
 {
        struct drbd_resource *resource = (struct drbd_resource *) data;
        struct queued_twopc *q;
        unsigned long irq_flags;
        unsigned long t = twopc_timeout(resource) / 4;
+#endif
 
        spin_lock_irqsave(&resource->queued_twopc_lock, irq_flags);
        q = list_first_entry_or_null(&resource->queued_twopc, struct 
queued_twopc, w.list);
@@ -7262,7 +7284,11 @@
        wake_up(&peer_device->device->misc_wait);
 
        del_timer_sync(&peer_device->resync_timer);
+#ifndef COMPAT_HAVE_SETUP_TIMER
+       resync_timer_fn(&peer_device->resync_timer);
+#else
        resync_timer_fn((unsigned long)peer_device);
+#endif
        del_timer_sync(&peer_device->start_resync_timer);
 }
 
diff -Naur drbd-9.0.12+git.969e477d.orig/drbd/drbd_req.c 
drbd-9.0.12+git.969e477d/drbd/drbd_req.c
--- drbd-9.0.12+git.969e477d.orig/drbd/drbd_req.c       2018-02-11 
17:28:38.748598711 +0800
+++ drbd-9.0.12+git.969e477d/drbd/drbd_req.c    2018-02-11 17:28:50.172678024 
+0800
@@ -2309,6 +2309,19 @@
  * to expire twice (worst case) to become effective. Good enough.
  */
 
+#ifndef COMPAT_HAVE_SETUP_TIMER
+void request_timer_fn(struct timer_list *t)
+{
+       struct drbd_connection *connection;
+       struct drbd_request *req_read, *req_write;
+       unsigned long oldest_submit_jif;
+       unsigned long dt = 0;
+       unsigned long et = 0;
+       unsigned long now = jiffies;
+       unsigned long next_trigger_time = now;
+       bool restart_timer = false;
+       struct drbd_device *device = from_timer(device, t, request_timer);
+#else
 void request_timer_fn(unsigned long data)
 {
        struct drbd_device *device = (struct drbd_device *) data;
@@ -2320,6 +2333,7 @@
        unsigned long now = jiffies;
        unsigned long next_trigger_time = now;
        bool restart_timer = false;
+#endif
 
        rcu_read_lock();
        if (get_ldev(device)) { /* implicit state.disk >= D_INCONSISTENT */
diff -Naur drbd-9.0.12+git.969e477d.orig/drbd/drbd_req.h 
drbd-9.0.12+git.969e477d/drbd/drbd_req.h
--- drbd-9.0.12+git.969e477d.orig/drbd/drbd_req.h       2018-02-11 
17:28:38.748598711 +0800
+++ drbd-9.0.12+git.969e477d/drbd/drbd_req.h    2018-02-11 17:28:50.172678024 
+0800
@@ -319,7 +319,11 @@
                struct bio_and_error *m);
 extern void complete_master_bio(struct drbd_device *device,
                struct bio_and_error *m);
+#ifndef COMPAT_HAVE_SETUP_TIMER
+extern void request_timer_fn(struct timer_list *);
+#else
 extern void request_timer_fn(unsigned long data);
+#endif
 extern void tl_restart(struct drbd_connection *connection, enum drbd_req_event 
what);
 extern void _tl_restart(struct drbd_connection *connection, enum 
drbd_req_event what);
 extern void drbd_queue_peer_ack(struct drbd_resource *resource, struct 
drbd_request *req);
diff -Naur drbd-9.0.12+git.969e477d.orig/drbd/drbd_sender.c 
drbd-9.0.12+git.969e477d/drbd/drbd_sender.c
--- drbd-9.0.12+git.969e477d.orig/drbd/drbd_sender.c    2018-02-11 
17:28:38.748598711 +0800
+++ drbd-9.0.12+git.969e477d/drbd/drbd_sender.c 2018-02-11 17:28:50.172678024 
+0800
@@ -498,9 +498,15 @@
        return 0;
 }
 
+#ifndef COMPAT_HAVE_SETUP_TIMER
+void resync_timer_fn(struct timer_list *t)
+{
+       struct drbd_peer_device *peer_device = from_timer(peer_device, t, 
resync_timer);
+#else
 void resync_timer_fn(unsigned long data)
 {
        struct drbd_peer_device *peer_device = (struct drbd_peer_device *) data;
+#endif
 
        drbd_queue_work_if_unqueued(
                &peer_device->connection->sender_work,
@@ -1809,9 +1815,15 @@
        rcu_read_unlock();
 }
 
+#ifndef COMPAT_HAVE_SETUP_TIMER
+void start_resync_timer_fn(struct timer_list *t)
+{
+       struct drbd_peer_device *peer_device = from_timer(peer_device, t, 
start_resync_timer);
+#else
 void start_resync_timer_fn(unsigned long data)
 {
        struct drbd_peer_device *peer_device = (struct drbd_peer_device *) data;
+#endif
        drbd_peer_device_post_work(peer_device, RS_START);
 }
 
@@ -2153,9 +2165,15 @@
        return 0;
 }
 
+#ifndef COMPAT_HAVE_SETUP_TIMER
+void repost_up_to_date_fn(struct timer_list *t)
+{
+       struct drbd_resource *resource = from_timer(resource, t, 
repost_up_to_date_timer);
+#else
 void repost_up_to_date_fn(unsigned long data)
 {
        struct drbd_resource *resource = (struct drbd_resource *) data;
+#endif
        drbd_post_work(resource, TRY_BECOME_UP_TO_DATE);
 }
 

Reply via email to