diff options
-rw-r--r-- | drivers/block/drbd/drbd_int.h | 4 | ||||
-rw-r--r-- | drivers/block/drbd/drbd_main.c | 18 | ||||
-rw-r--r-- | drivers/block/drbd/drbd_receiver.c | 2 | ||||
-rw-r--r-- | drivers/block/drbd/drbd_req.c | 4 | ||||
-rw-r--r-- | drivers/block/drbd/drbd_req.h | 2 | ||||
-rw-r--r-- | drivers/block/drbd/drbd_worker.c | 8 |
6 files changed, 17 insertions, 21 deletions
diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h index 7e8589ce631c..06ecee1b528e 100644 --- a/drivers/block/drbd/drbd_int.h +++ b/drivers/block/drbd/drbd_int.h | |||
@@ -1551,8 +1551,8 @@ extern int w_restart_disk_io(struct drbd_work *, int); | |||
1551 | extern int w_send_out_of_sync(struct drbd_work *, int); | 1551 | extern int w_send_out_of_sync(struct drbd_work *, int); |
1552 | extern int w_start_resync(struct drbd_work *, int); | 1552 | extern int w_start_resync(struct drbd_work *, int); |
1553 | 1553 | ||
1554 | extern void resync_timer_fn(unsigned long data); | 1554 | extern void resync_timer_fn(struct timer_list *t); |
1555 | extern void start_resync_timer_fn(unsigned long data); | 1555 | extern void start_resync_timer_fn(struct timer_list *t); |
1556 | 1556 | ||
1557 | extern void drbd_endio_write_sec_final(struct drbd_peer_request *peer_req); | 1557 | extern void drbd_endio_write_sec_final(struct drbd_peer_request *peer_req); |
1558 | 1558 | ||
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c index 8cb3791898ae..4b4697a1f963 100644 --- a/drivers/block/drbd/drbd_main.c +++ b/drivers/block/drbd/drbd_main.c | |||
@@ -64,7 +64,7 @@ | |||
64 | static DEFINE_MUTEX(drbd_main_mutex); | 64 | static DEFINE_MUTEX(drbd_main_mutex); |
65 | static int drbd_open(struct block_device *bdev, fmode_t mode); | 65 | static int drbd_open(struct block_device *bdev, fmode_t mode); |
66 | static void drbd_release(struct gendisk *gd, fmode_t mode); | 66 | static void drbd_release(struct gendisk *gd, fmode_t mode); |
67 | static void md_sync_timer_fn(unsigned long data); | 67 | static void md_sync_timer_fn(struct timer_list *t); |
68 | static int w_bitmap_io(struct drbd_work *w, int unused); | 68 | static int w_bitmap_io(struct drbd_work *w, int unused); |
69 | 69 | ||
70 | MODULE_AUTHOR("Philipp Reisner <phil@linbit.com>, " | 70 | MODULE_AUTHOR("Philipp Reisner <phil@linbit.com>, " |
@@ -2023,14 +2023,10 @@ void drbd_init_set_defaults(struct drbd_device *device) | |||
2023 | device->unplug_work.cb = w_send_write_hint; | 2023 | device->unplug_work.cb = w_send_write_hint; |
2024 | device->bm_io_work.w.cb = w_bitmap_io; | 2024 | device->bm_io_work.w.cb = w_bitmap_io; |
2025 | 2025 | ||
2026 | setup_timer(&device->resync_timer, resync_timer_fn, | 2026 | timer_setup(&device->resync_timer, resync_timer_fn, 0); |
2027 | (unsigned long)device); | 2027 | timer_setup(&device->md_sync_timer, md_sync_timer_fn, 0); |
2028 | setup_timer(&device->md_sync_timer, md_sync_timer_fn, | 2028 | timer_setup(&device->start_resync_timer, start_resync_timer_fn, 0); |
2029 | (unsigned long)device); | 2029 | timer_setup(&device->request_timer, request_timer_fn, 0); |
2030 | setup_timer(&device->start_resync_timer, start_resync_timer_fn, | ||
2031 | (unsigned long)device); | ||
2032 | setup_timer(&device->request_timer, request_timer_fn, | ||
2033 | (unsigned long)device); | ||
2034 | 2030 | ||
2035 | init_waitqueue_head(&device->misc_wait); | 2031 | init_waitqueue_head(&device->misc_wait); |
2036 | init_waitqueue_head(&device->state_wait); | 2032 | init_waitqueue_head(&device->state_wait); |
@@ -3721,9 +3717,9 @@ int drbd_md_test_flag(struct drbd_backing_dev *bdev, int flag) | |||
3721 | return (bdev->md.flags & flag) != 0; | 3717 | return (bdev->md.flags & flag) != 0; |
3722 | } | 3718 | } |
3723 | 3719 | ||
3724 | static void md_sync_timer_fn(unsigned long data) | 3720 | static void md_sync_timer_fn(struct timer_list *t) |
3725 | { | 3721 | { |
3726 | struct drbd_device *device = (struct drbd_device *) data; | 3722 | struct drbd_device *device = from_timer(device, t, md_sync_timer); |
3727 | drbd_device_post_work(device, MD_SYNC); | 3723 | drbd_device_post_work(device, MD_SYNC); |
3728 | } | 3724 | } |
3729 | 3725 | ||
diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c index 796eaf347dc0..cb2fa63f6bc0 100644 --- a/drivers/block/drbd/drbd_receiver.c +++ b/drivers/block/drbd/drbd_receiver.c | |||
@@ -5056,7 +5056,7 @@ static int drbd_disconnected(struct drbd_peer_device *peer_device) | |||
5056 | wake_up(&device->misc_wait); | 5056 | wake_up(&device->misc_wait); |
5057 | 5057 | ||
5058 | del_timer_sync(&device->resync_timer); | 5058 | del_timer_sync(&device->resync_timer); |
5059 | resync_timer_fn((unsigned long)device); | 5059 | resync_timer_fn(&device->resync_timer); |
5060 | 5060 | ||
5061 | /* wait for all w_e_end_data_req, w_e_end_rsdata_req, w_send_barrier, | 5061 | /* wait for all w_e_end_data_req, w_e_end_rsdata_req, w_send_barrier, |
5062 | * w_make_resync_request etc. which may still be on the worker queue | 5062 | * w_make_resync_request etc. which may still be on the worker queue |
diff --git a/drivers/block/drbd/drbd_req.c b/drivers/block/drbd/drbd_req.c index de8566e55334..a500e738d929 100644 --- a/drivers/block/drbd/drbd_req.c +++ b/drivers/block/drbd/drbd_req.c | |||
@@ -1714,9 +1714,9 @@ static bool net_timeout_reached(struct drbd_request *net_req, | |||
1714 | * to expire twice (worst case) to become effective. Good enough. | 1714 | * to expire twice (worst case) to become effective. Good enough. |
1715 | */ | 1715 | */ |
1716 | 1716 | ||
1717 | void request_timer_fn(unsigned long data) | 1717 | void request_timer_fn(struct timer_list *t) |
1718 | { | 1718 | { |
1719 | struct drbd_device *device = (struct drbd_device *) data; | 1719 | struct drbd_device *device = from_timer(device, t, request_timer); |
1720 | struct drbd_connection *connection = first_peer_device(device)->connection; | 1720 | struct drbd_connection *connection = first_peer_device(device)->connection; |
1721 | struct drbd_request *req_read, *req_write, *req_peer; /* oldest request */ | 1721 | struct drbd_request *req_read, *req_write, *req_peer; /* oldest request */ |
1722 | struct net_conf *nc; | 1722 | struct net_conf *nc; |
diff --git a/drivers/block/drbd/drbd_req.h b/drivers/block/drbd/drbd_req.h index a2254f825601..cb97b3b30962 100644 --- a/drivers/block/drbd/drbd_req.h +++ b/drivers/block/drbd/drbd_req.h | |||
@@ -294,7 +294,7 @@ extern int __req_mod(struct drbd_request *req, enum drbd_req_event what, | |||
294 | struct bio_and_error *m); | 294 | struct bio_and_error *m); |
295 | extern void complete_master_bio(struct drbd_device *device, | 295 | extern void complete_master_bio(struct drbd_device *device, |
296 | struct bio_and_error *m); | 296 | struct bio_and_error *m); |
297 | extern void request_timer_fn(unsigned long data); | 297 | extern void request_timer_fn(struct timer_list *t); |
298 | extern void tl_restart(struct drbd_connection *connection, enum drbd_req_event what); | 298 | extern void tl_restart(struct drbd_connection *connection, enum drbd_req_event what); |
299 | extern void _tl_restart(struct drbd_connection *connection, enum drbd_req_event what); | 299 | extern void _tl_restart(struct drbd_connection *connection, enum drbd_req_event what); |
300 | extern void tl_abort_disk_io(struct drbd_device *device); | 300 | extern void tl_abort_disk_io(struct drbd_device *device); |
diff --git a/drivers/block/drbd/drbd_worker.c b/drivers/block/drbd/drbd_worker.c index 03471b3fce86..1476cb3439f4 100644 --- a/drivers/block/drbd/drbd_worker.c +++ b/drivers/block/drbd/drbd_worker.c | |||
@@ -457,9 +457,9 @@ int w_resync_timer(struct drbd_work *w, int cancel) | |||
457 | return 0; | 457 | return 0; |
458 | } | 458 | } |
459 | 459 | ||
460 | void resync_timer_fn(unsigned long data) | 460 | void resync_timer_fn(struct timer_list *t) |
461 | { | 461 | { |
462 | struct drbd_device *device = (struct drbd_device *) data; | 462 | struct drbd_device *device = from_timer(device, t, resync_timer); |
463 | 463 | ||
464 | drbd_queue_work_if_unqueued( | 464 | drbd_queue_work_if_unqueued( |
465 | &first_peer_device(device)->connection->sender_work, | 465 | &first_peer_device(device)->connection->sender_work, |
@@ -1705,9 +1705,9 @@ void drbd_rs_controller_reset(struct drbd_device *device) | |||
1705 | rcu_read_unlock(); | 1705 | rcu_read_unlock(); |
1706 | } | 1706 | } |
1707 | 1707 | ||
1708 | void start_resync_timer_fn(unsigned long data) | 1708 | void start_resync_timer_fn(struct timer_list *t) |
1709 | { | 1709 | { |
1710 | struct drbd_device *device = (struct drbd_device *) data; | 1710 | struct drbd_device *device = from_timer(device, t, start_resync_timer); |
1711 | drbd_device_post_work(device, RS_START); | 1711 | drbd_device_post_work(device, RS_START); |
1712 | } | 1712 | } |
1713 | 1713 | ||