diff options
author | Philipp Reisner <philipp.reisner@linbit.com> | 2011-01-19 08:02:01 -0500 |
---|---|---|
committer | Philipp Reisner <philipp.reisner@linbit.com> | 2011-08-29 05:27:06 -0400 |
commit | e6b3ea83bc72e126247b241c1164794a644d6fdc (patch) | |
tree | 763f2cdf1c57a33029153238cc0250b483334eb0 /drivers/block | |
parent | e42325a57606396539807ff55c24febda39f8d01 (diff) |
drbd: moved receiver, worker and asender from mdev to tconn
Patch mostly:
sed -i -e 's/mdev->receiver/mdev->tconn->receiver/g' \
-e 's/mdev->worker/mdev->tconn->worker/g' \
-e 's/mdev->asender/mdev->tconn->asender/g' \
*.[ch]
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Diffstat (limited to 'drivers/block')
-rw-r--r-- | drivers/block/drbd/drbd_bitmap.c | 24 | ||||
-rw-r--r-- | drivers/block/drbd/drbd_int.h | 9 | ||||
-rw-r--r-- | drivers/block/drbd/drbd_main.c | 44 | ||||
-rw-r--r-- | drivers/block/drbd/drbd_nl.c | 10 | ||||
-rw-r--r-- | drivers/block/drbd/drbd_receiver.c | 14 | ||||
-rw-r--r-- | drivers/block/drbd/drbd_worker.c | 4 |
6 files changed, 53 insertions, 52 deletions
diff --git a/drivers/block/drbd/drbd_bitmap.c b/drivers/block/drbd/drbd_bitmap.c index c756b4dbd135..4da4c322fa56 100644 --- a/drivers/block/drbd/drbd_bitmap.c +++ b/drivers/block/drbd/drbd_bitmap.c | |||
@@ -119,13 +119,13 @@ static void __bm_print_lock_info(struct drbd_conf *mdev, const char *func) | |||
119 | if (!__ratelimit(&drbd_ratelimit_state)) | 119 | if (!__ratelimit(&drbd_ratelimit_state)) |
120 | return; | 120 | return; |
121 | dev_err(DEV, "FIXME %s in %s, bitmap locked for '%s' by %s\n", | 121 | dev_err(DEV, "FIXME %s in %s, bitmap locked for '%s' by %s\n", |
122 | current == mdev->receiver.task ? "receiver" : | 122 | current == mdev->tconn->receiver.task ? "receiver" : |
123 | current == mdev->asender.task ? "asender" : | 123 | current == mdev->tconn->asender.task ? "asender" : |
124 | current == mdev->worker.task ? "worker" : current->comm, | 124 | current == mdev->tconn->worker.task ? "worker" : current->comm, |
125 | func, b->bm_why ?: "?", | 125 | func, b->bm_why ?: "?", |
126 | b->bm_task == mdev->receiver.task ? "receiver" : | 126 | b->bm_task == mdev->tconn->receiver.task ? "receiver" : |
127 | b->bm_task == mdev->asender.task ? "asender" : | 127 | b->bm_task == mdev->tconn->asender.task ? "asender" : |
128 | b->bm_task == mdev->worker.task ? "worker" : "?"); | 128 | b->bm_task == mdev->tconn->worker.task ? "worker" : "?"); |
129 | } | 129 | } |
130 | 130 | ||
131 | void drbd_bm_lock(struct drbd_conf *mdev, char *why, enum bm_flag flags) | 131 | void drbd_bm_lock(struct drbd_conf *mdev, char *why, enum bm_flag flags) |
@@ -142,13 +142,13 @@ void drbd_bm_lock(struct drbd_conf *mdev, char *why, enum bm_flag flags) | |||
142 | 142 | ||
143 | if (trylock_failed) { | 143 | if (trylock_failed) { |
144 | dev_warn(DEV, "%s going to '%s' but bitmap already locked for '%s' by %s\n", | 144 | dev_warn(DEV, "%s going to '%s' but bitmap already locked for '%s' by %s\n", |
145 | current == mdev->receiver.task ? "receiver" : | 145 | current == mdev->tconn->receiver.task ? "receiver" : |
146 | current == mdev->asender.task ? "asender" : | 146 | current == mdev->tconn->asender.task ? "asender" : |
147 | current == mdev->worker.task ? "worker" : current->comm, | 147 | current == mdev->tconn->worker.task ? "worker" : current->comm, |
148 | why, b->bm_why ?: "?", | 148 | why, b->bm_why ?: "?", |
149 | b->bm_task == mdev->receiver.task ? "receiver" : | 149 | b->bm_task == mdev->tconn->receiver.task ? "receiver" : |
150 | b->bm_task == mdev->asender.task ? "asender" : | 150 | b->bm_task == mdev->tconn->asender.task ? "asender" : |
151 | b->bm_task == mdev->worker.task ? "worker" : "?"); | 151 | b->bm_task == mdev->tconn->worker.task ? "worker" : "?"); |
152 | mutex_lock(&b->bm_change); | 152 | mutex_lock(&b->bm_change); |
153 | } | 153 | } |
154 | if (BM_LOCKED_MASK & b->bm_flags) | 154 | if (BM_LOCKED_MASK & b->bm_flags) |
diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h index 8de17b5bd42a..c5b1167aab50 100644 --- a/drivers/block/drbd/drbd_int.h +++ b/drivers/block/drbd/drbd_int.h | |||
@@ -972,6 +972,10 @@ struct drbd_tconn { /* is a resource from the config file */ | |||
972 | 972 | ||
973 | struct drbd_socket data; /* data/barrier/cstate/parameter packets */ | 973 | struct drbd_socket data; /* data/barrier/cstate/parameter packets */ |
974 | struct drbd_socket meta; /* ping/ack (metadata) packets */ | 974 | struct drbd_socket meta; /* ping/ack (metadata) packets */ |
975 | |||
976 | struct drbd_thread receiver; | ||
977 | struct drbd_thread worker; | ||
978 | struct drbd_thread asender; | ||
975 | }; | 979 | }; |
976 | 980 | ||
977 | struct drbd_conf { | 981 | struct drbd_conf { |
@@ -1068,9 +1072,6 @@ struct drbd_conf { | |||
1068 | struct crypto_hash *csums_tfm; | 1072 | struct crypto_hash *csums_tfm; |
1069 | struct crypto_hash *verify_tfm; | 1073 | struct crypto_hash *verify_tfm; |
1070 | 1074 | ||
1071 | struct drbd_thread receiver; | ||
1072 | struct drbd_thread worker; | ||
1073 | struct drbd_thread asender; | ||
1074 | struct drbd_bitmap *bitmap; | 1075 | struct drbd_bitmap *bitmap; |
1075 | unsigned long bm_resync_fo; /* bit offset for drbd_bm_find_next */ | 1076 | unsigned long bm_resync_fo; /* bit offset for drbd_bm_find_next */ |
1076 | 1077 | ||
@@ -2005,7 +2006,7 @@ drbd_queue_work(struct drbd_work_queue *q, struct drbd_work *w) | |||
2005 | static inline void wake_asender(struct drbd_conf *mdev) | 2006 | static inline void wake_asender(struct drbd_conf *mdev) |
2006 | { | 2007 | { |
2007 | if (test_bit(SIGNAL_ASENDER, &mdev->flags)) | 2008 | if (test_bit(SIGNAL_ASENDER, &mdev->flags)) |
2008 | force_sig(DRBD_SIG, mdev->asender.task); | 2009 | force_sig(DRBD_SIG, mdev->tconn->asender.task); |
2009 | } | 2010 | } |
2010 | 2011 | ||
2011 | static inline void request_ping(struct drbd_conf *mdev) | 2012 | static inline void request_ping(struct drbd_conf *mdev) |
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c index 84e40fbfd3e9..5d8a6e94a4a5 100644 --- a/drivers/block/drbd/drbd_main.c +++ b/drivers/block/drbd/drbd_main.c | |||
@@ -613,7 +613,7 @@ drbd_req_state(struct drbd_conf *mdev, union drbd_state mask, | |||
613 | spin_unlock_irqrestore(&mdev->req_lock, flags); | 613 | spin_unlock_irqrestore(&mdev->req_lock, flags); |
614 | 614 | ||
615 | if (f & CS_WAIT_COMPLETE && rv == SS_SUCCESS) { | 615 | if (f & CS_WAIT_COMPLETE && rv == SS_SUCCESS) { |
616 | D_ASSERT(current != mdev->worker.task); | 616 | D_ASSERT(current != mdev->tconn->worker.task); |
617 | wait_for_completion(&done); | 617 | wait_for_completion(&done); |
618 | } | 618 | } |
619 | 619 | ||
@@ -1229,16 +1229,16 @@ __drbd_set_state(struct drbd_conf *mdev, union drbd_state ns, | |||
1229 | 1229 | ||
1230 | /* Receiver should clean up itself */ | 1230 | /* Receiver should clean up itself */ |
1231 | if (os.conn != C_DISCONNECTING && ns.conn == C_DISCONNECTING) | 1231 | if (os.conn != C_DISCONNECTING && ns.conn == C_DISCONNECTING) |
1232 | drbd_thread_stop_nowait(&mdev->receiver); | 1232 | drbd_thread_stop_nowait(&mdev->tconn->receiver); |
1233 | 1233 | ||
1234 | /* Now the receiver finished cleaning up itself, it should die */ | 1234 | /* Now the receiver finished cleaning up itself, it should die */ |
1235 | if (os.conn != C_STANDALONE && ns.conn == C_STANDALONE) | 1235 | if (os.conn != C_STANDALONE && ns.conn == C_STANDALONE) |
1236 | drbd_thread_stop_nowait(&mdev->receiver); | 1236 | drbd_thread_stop_nowait(&mdev->tconn->receiver); |
1237 | 1237 | ||
1238 | /* Upon network failure, we need to restart the receiver. */ | 1238 | /* Upon network failure, we need to restart the receiver. */ |
1239 | if (os.conn > C_TEAR_DOWN && | 1239 | if (os.conn > C_TEAR_DOWN && |
1240 | ns.conn <= C_TEAR_DOWN && ns.conn >= C_TIMEOUT) | 1240 | ns.conn <= C_TEAR_DOWN && ns.conn >= C_TIMEOUT) |
1241 | drbd_thread_restart_nowait(&mdev->receiver); | 1241 | drbd_thread_restart_nowait(&mdev->tconn->receiver); |
1242 | 1242 | ||
1243 | /* Resume AL writing if we get a connection */ | 1243 | /* Resume AL writing if we get a connection */ |
1244 | if (os.conn < C_CONNECTED && ns.conn >= C_CONNECTED) | 1244 | if (os.conn < C_CONNECTED && ns.conn >= C_CONNECTED) |
@@ -1297,7 +1297,7 @@ int drbd_bitmap_io_from_worker(struct drbd_conf *mdev, | |||
1297 | { | 1297 | { |
1298 | int rv; | 1298 | int rv; |
1299 | 1299 | ||
1300 | D_ASSERT(current == mdev->worker.task); | 1300 | D_ASSERT(current == mdev->tconn->worker.task); |
1301 | 1301 | ||
1302 | /* open coded non-blocking drbd_suspend_io(mdev); */ | 1302 | /* open coded non-blocking drbd_suspend_io(mdev); */ |
1303 | set_bit(SUSPEND_IO, &mdev->flags); | 1303 | set_bit(SUSPEND_IO, &mdev->flags); |
@@ -1598,7 +1598,7 @@ static void after_state_ch(struct drbd_conf *mdev, union drbd_state os, | |||
1598 | 1598 | ||
1599 | /* Upon network connection, we need to start the receiver */ | 1599 | /* Upon network connection, we need to start the receiver */ |
1600 | if (os.conn == C_STANDALONE && ns.conn == C_UNCONNECTED) | 1600 | if (os.conn == C_STANDALONE && ns.conn == C_UNCONNECTED) |
1601 | drbd_thread_start(&mdev->receiver); | 1601 | drbd_thread_start(&mdev->tconn->receiver); |
1602 | 1602 | ||
1603 | /* Terminate worker thread if we are unconfigured - it will be | 1603 | /* Terminate worker thread if we are unconfigured - it will be |
1604 | restarted as needed... */ | 1604 | restarted as needed... */ |
@@ -1609,7 +1609,7 @@ static void after_state_ch(struct drbd_conf *mdev, union drbd_state os, | |||
1609 | resume_next_sg(mdev); | 1609 | resume_next_sg(mdev); |
1610 | /* set in __drbd_set_state, unless CONFIG_PENDING was set */ | 1610 | /* set in __drbd_set_state, unless CONFIG_PENDING was set */ |
1611 | if (test_bit(DEVICE_DYING, &mdev->flags)) | 1611 | if (test_bit(DEVICE_DYING, &mdev->flags)) |
1612 | drbd_thread_stop_nowait(&mdev->worker); | 1612 | drbd_thread_stop_nowait(&mdev->tconn->worker); |
1613 | } | 1613 | } |
1614 | 1614 | ||
1615 | drbd_md_sync(mdev); | 1615 | drbd_md_sync(mdev); |
@@ -1675,9 +1675,9 @@ int drbd_thread_start(struct drbd_thread *thi) | |||
1675 | unsigned long flags; | 1675 | unsigned long flags; |
1676 | 1676 | ||
1677 | const char *me = | 1677 | const char *me = |
1678 | thi == &mdev->receiver ? "receiver" : | 1678 | thi == &mdev->tconn->receiver ? "receiver" : |
1679 | thi == &mdev->asender ? "asender" : | 1679 | thi == &mdev->tconn->asender ? "asender" : |
1680 | thi == &mdev->worker ? "worker" : "NONSENSE"; | 1680 | thi == &mdev->tconn->worker ? "worker" : "NONSENSE"; |
1681 | 1681 | ||
1682 | /* is used from state engine doing drbd_thread_stop_nowait, | 1682 | /* is used from state engine doing drbd_thread_stop_nowait, |
1683 | * while holding the req lock irqsave */ | 1683 | * while holding the req lock irqsave */ |
@@ -1807,9 +1807,9 @@ void drbd_thread_current_set_cpu(struct drbd_conf *mdev) | |||
1807 | { | 1807 | { |
1808 | struct task_struct *p = current; | 1808 | struct task_struct *p = current; |
1809 | struct drbd_thread *thi = | 1809 | struct drbd_thread *thi = |
1810 | p == mdev->asender.task ? &mdev->asender : | 1810 | p == mdev->tconn->asender.task ? &mdev->tconn->asender : |
1811 | p == mdev->receiver.task ? &mdev->receiver : | 1811 | p == mdev->tconn->receiver.task ? &mdev->tconn->receiver : |
1812 | p == mdev->worker.task ? &mdev->worker : | 1812 | p == mdev->tconn->worker.task ? &mdev->tconn->worker : |
1813 | NULL; | 1813 | NULL; |
1814 | if (!expect(thi != NULL)) | 1814 | if (!expect(thi != NULL)) |
1815 | return; | 1815 | return; |
@@ -2507,8 +2507,8 @@ static int we_should_drop_the_connection(struct drbd_conf *mdev, struct socket * | |||
2507 | /* long elapsed = (long)(jiffies - mdev->last_received); */ | 2507 | /* long elapsed = (long)(jiffies - mdev->last_received); */ |
2508 | 2508 | ||
2509 | drop_it = mdev->tconn->meta.socket == sock | 2509 | drop_it = mdev->tconn->meta.socket == sock |
2510 | || !mdev->asender.task | 2510 | || !mdev->tconn->asender.task |
2511 | || get_t_state(&mdev->asender) != RUNNING | 2511 | || get_t_state(&mdev->tconn->asender) != RUNNING |
2512 | || mdev->state.conn < C_CONNECTED; | 2512 | || mdev->state.conn < C_CONNECTED; |
2513 | 2513 | ||
2514 | if (drop_it) | 2514 | if (drop_it) |
@@ -3034,9 +3034,9 @@ void drbd_init_set_defaults(struct drbd_conf *mdev) | |||
3034 | init_waitqueue_head(&mdev->al_wait); | 3034 | init_waitqueue_head(&mdev->al_wait); |
3035 | init_waitqueue_head(&mdev->seq_wait); | 3035 | init_waitqueue_head(&mdev->seq_wait); |
3036 | 3036 | ||
3037 | drbd_thread_init(mdev, &mdev->receiver, drbdd_init); | 3037 | drbd_thread_init(mdev, &mdev->tconn->receiver, drbdd_init); |
3038 | drbd_thread_init(mdev, &mdev->worker, drbd_worker); | 3038 | drbd_thread_init(mdev, &mdev->tconn->worker, drbd_worker); |
3039 | drbd_thread_init(mdev, &mdev->asender, drbd_asender); | 3039 | drbd_thread_init(mdev, &mdev->tconn->asender, drbd_asender); |
3040 | 3040 | ||
3041 | mdev->agreed_pro_version = PRO_VERSION_MAX; | 3041 | mdev->agreed_pro_version = PRO_VERSION_MAX; |
3042 | mdev->write_ordering = WO_bdev_flush; | 3042 | mdev->write_ordering = WO_bdev_flush; |
@@ -3048,9 +3048,9 @@ void drbd_init_set_defaults(struct drbd_conf *mdev) | |||
3048 | void drbd_mdev_cleanup(struct drbd_conf *mdev) | 3048 | void drbd_mdev_cleanup(struct drbd_conf *mdev) |
3049 | { | 3049 | { |
3050 | int i; | 3050 | int i; |
3051 | if (mdev->receiver.t_state != NONE) | 3051 | if (mdev->tconn->receiver.t_state != NONE) |
3052 | dev_err(DEV, "ASSERT FAILED: receiver t_state == %d expected 0.\n", | 3052 | dev_err(DEV, "ASSERT FAILED: receiver t_state == %d expected 0.\n", |
3053 | mdev->receiver.t_state); | 3053 | mdev->tconn->receiver.t_state); |
3054 | 3054 | ||
3055 | /* no need to lock it, I'm the only thread alive */ | 3055 | /* no need to lock it, I'm the only thread alive */ |
3056 | if (atomic_read(&mdev->current_epoch->epoch_size) != 0) | 3056 | if (atomic_read(&mdev->current_epoch->epoch_size) != 0) |
@@ -4032,7 +4032,7 @@ void drbd_queue_bitmap_io(struct drbd_conf *mdev, | |||
4032 | void (*done)(struct drbd_conf *, int), | 4032 | void (*done)(struct drbd_conf *, int), |
4033 | char *why, enum bm_flag flags) | 4033 | char *why, enum bm_flag flags) |
4034 | { | 4034 | { |
4035 | D_ASSERT(current == mdev->worker.task); | 4035 | D_ASSERT(current == mdev->tconn->worker.task); |
4036 | 4036 | ||
4037 | D_ASSERT(!test_bit(BITMAP_IO_QUEUED, &mdev->flags)); | 4037 | D_ASSERT(!test_bit(BITMAP_IO_QUEUED, &mdev->flags)); |
4038 | D_ASSERT(!test_bit(BITMAP_IO, &mdev->flags)); | 4038 | D_ASSERT(!test_bit(BITMAP_IO, &mdev->flags)); |
@@ -4069,7 +4069,7 @@ int drbd_bitmap_io(struct drbd_conf *mdev, int (*io_fn)(struct drbd_conf *), | |||
4069 | { | 4069 | { |
4070 | int rv; | 4070 | int rv; |
4071 | 4071 | ||
4072 | D_ASSERT(current != mdev->worker.task); | 4072 | D_ASSERT(current != mdev->tconn->worker.task); |
4073 | 4073 | ||
4074 | if ((flags & BM_LOCKED_SET_ALLOWED) == 0) | 4074 | if ((flags & BM_LOCKED_SET_ALLOWED) == 0) |
4075 | drbd_suspend_io(mdev); | 4075 | drbd_suspend_io(mdev); |
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c index a936d61a90cd..59bb58c9b22f 100644 --- a/drivers/block/drbd/drbd_nl.c +++ b/drivers/block/drbd/drbd_nl.c | |||
@@ -875,7 +875,7 @@ static void drbd_reconfig_start(struct drbd_conf *mdev) | |||
875 | { | 875 | { |
876 | wait_event(mdev->state_wait, !test_and_set_bit(CONFIG_PENDING, &mdev->flags)); | 876 | wait_event(mdev->state_wait, !test_and_set_bit(CONFIG_PENDING, &mdev->flags)); |
877 | wait_event(mdev->state_wait, !test_bit(DEVICE_DYING, &mdev->flags)); | 877 | wait_event(mdev->state_wait, !test_bit(DEVICE_DYING, &mdev->flags)); |
878 | drbd_thread_start(&mdev->worker); | 878 | drbd_thread_start(&mdev->tconn->worker); |
879 | drbd_flush_workqueue(mdev); | 879 | drbd_flush_workqueue(mdev); |
880 | } | 880 | } |
881 | 881 | ||
@@ -889,7 +889,7 @@ static void drbd_reconfig_done(struct drbd_conf *mdev) | |||
889 | mdev->state.conn == C_STANDALONE && | 889 | mdev->state.conn == C_STANDALONE && |
890 | mdev->state.role == R_SECONDARY) { | 890 | mdev->state.role == R_SECONDARY) { |
891 | set_bit(DEVICE_DYING, &mdev->flags); | 891 | set_bit(DEVICE_DYING, &mdev->flags); |
892 | drbd_thread_stop_nowait(&mdev->worker); | 892 | drbd_thread_stop_nowait(&mdev->tconn->worker); |
893 | } else | 893 | } else |
894 | clear_bit(CONFIG_PENDING, &mdev->flags); | 894 | clear_bit(CONFIG_PENDING, &mdev->flags); |
895 | spin_unlock_irq(&mdev->req_lock); | 895 | spin_unlock_irq(&mdev->req_lock); |
@@ -1887,9 +1887,9 @@ static int drbd_nl_syncer_conf(struct drbd_conf *mdev, struct drbd_nl_cfg_req *n | |||
1887 | if (!cpumask_equal(mdev->cpu_mask, new_cpu_mask)) { | 1887 | if (!cpumask_equal(mdev->cpu_mask, new_cpu_mask)) { |
1888 | cpumask_copy(mdev->cpu_mask, new_cpu_mask); | 1888 | cpumask_copy(mdev->cpu_mask, new_cpu_mask); |
1889 | drbd_calc_cpu_mask(mdev); | 1889 | drbd_calc_cpu_mask(mdev); |
1890 | mdev->receiver.reset_cpu_mask = 1; | 1890 | mdev->tconn->receiver.reset_cpu_mask = 1; |
1891 | mdev->asender.reset_cpu_mask = 1; | 1891 | mdev->tconn->asender.reset_cpu_mask = 1; |
1892 | mdev->worker.reset_cpu_mask = 1; | 1892 | mdev->tconn->worker.reset_cpu_mask = 1; |
1893 | } | 1893 | } |
1894 | 1894 | ||
1895 | kobject_uevent(&disk_to_dev(mdev->vdisk)->kobj, KOBJ_CHANGE); | 1895 | kobject_uevent(&disk_to_dev(mdev->vdisk)->kobj, KOBJ_CHANGE); |
diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c index 2636bcc173a6..e9f670cd5542 100644 --- a/drivers/block/drbd/drbd_receiver.c +++ b/drivers/block/drbd/drbd_receiver.c | |||
@@ -833,7 +833,7 @@ retry: | |||
833 | if (signal_pending(current)) { | 833 | if (signal_pending(current)) { |
834 | flush_signals(current); | 834 | flush_signals(current); |
835 | smp_rmb(); | 835 | smp_rmb(); |
836 | if (get_t_state(&mdev->receiver) == EXITING) | 836 | if (get_t_state(&mdev->tconn->receiver) == EXITING) |
837 | goto out_release_sockets; | 837 | goto out_release_sockets; |
838 | } | 838 | } |
839 | 839 | ||
@@ -874,7 +874,7 @@ retry: | |||
874 | mdev->tconn->meta.socket = msock; | 874 | mdev->tconn->meta.socket = msock; |
875 | mdev->last_received = jiffies; | 875 | mdev->last_received = jiffies; |
876 | 876 | ||
877 | D_ASSERT(mdev->asender.task == NULL); | 877 | D_ASSERT(mdev->tconn->asender.task == NULL); |
878 | 878 | ||
879 | h = drbd_do_handshake(mdev); | 879 | h = drbd_do_handshake(mdev); |
880 | if (h <= 0) | 880 | if (h <= 0) |
@@ -901,7 +901,7 @@ retry: | |||
901 | atomic_set(&mdev->packet_seq, 0); | 901 | atomic_set(&mdev->packet_seq, 0); |
902 | mdev->peer_seq = 0; | 902 | mdev->peer_seq = 0; |
903 | 903 | ||
904 | drbd_thread_start(&mdev->asender); | 904 | drbd_thread_start(&mdev->tconn->asender); |
905 | 905 | ||
906 | if (drbd_send_protocol(mdev) == -1) | 906 | if (drbd_send_protocol(mdev) == -1) |
907 | return -1; | 907 | return -1; |
@@ -3704,7 +3704,7 @@ static void drbdd(struct drbd_conf *mdev) | |||
3704 | size_t shs; /* sub header size */ | 3704 | size_t shs; /* sub header size */ |
3705 | int rv; | 3705 | int rv; |
3706 | 3706 | ||
3707 | while (get_t_state(&mdev->receiver) == RUNNING) { | 3707 | while (get_t_state(&mdev->tconn->receiver) == RUNNING) { |
3708 | drbd_thread_current_set_cpu(mdev); | 3708 | drbd_thread_current_set_cpu(mdev); |
3709 | if (!drbd_recv_header(mdev, &cmd, &packet_size)) | 3709 | if (!drbd_recv_header(mdev, &cmd, &packet_size)) |
3710 | goto err_out; | 3710 | goto err_out; |
@@ -3768,7 +3768,7 @@ static void drbd_disconnect(struct drbd_conf *mdev) | |||
3768 | return; | 3768 | return; |
3769 | 3769 | ||
3770 | /* asender does not clean up anything. it must not interfere, either */ | 3770 | /* asender does not clean up anything. it must not interfere, either */ |
3771 | drbd_thread_stop(&mdev->asender); | 3771 | drbd_thread_stop(&mdev->tconn->asender); |
3772 | drbd_free_sock(mdev); | 3772 | drbd_free_sock(mdev); |
3773 | 3773 | ||
3774 | /* wait for current activity to cease. */ | 3774 | /* wait for current activity to cease. */ |
@@ -3891,7 +3891,7 @@ static void drbd_disconnect(struct drbd_conf *mdev) | |||
3891 | */ | 3891 | */ |
3892 | static int drbd_send_handshake(struct drbd_conf *mdev) | 3892 | static int drbd_send_handshake(struct drbd_conf *mdev) |
3893 | { | 3893 | { |
3894 | /* ASSERT current == mdev->receiver ... */ | 3894 | /* ASSERT current == mdev->tconn->receiver ... */ |
3895 | struct p_handshake *p = &mdev->tconn->data.sbuf.handshake; | 3895 | struct p_handshake *p = &mdev->tconn->data.sbuf.handshake; |
3896 | int ok; | 3896 | int ok; |
3897 | 3897 | ||
@@ -3923,7 +3923,7 @@ static int drbd_send_handshake(struct drbd_conf *mdev) | |||
3923 | */ | 3923 | */ |
3924 | static int drbd_do_handshake(struct drbd_conf *mdev) | 3924 | static int drbd_do_handshake(struct drbd_conf *mdev) |
3925 | { | 3925 | { |
3926 | /* ASSERT current == mdev->receiver ... */ | 3926 | /* ASSERT current == mdev->tconn->receiver ... */ |
3927 | struct p_handshake *p = &mdev->tconn->data.rbuf.handshake; | 3927 | struct p_handshake *p = &mdev->tconn->data.rbuf.handshake; |
3928 | const int expect = sizeof(struct p_handshake) - sizeof(struct p_header80); | 3928 | const int expect = sizeof(struct p_handshake) - sizeof(struct p_header80); |
3929 | unsigned int length; | 3929 | unsigned int length; |
diff --git a/drivers/block/drbd/drbd_worker.c b/drivers/block/drbd/drbd_worker.c index 9b1e2bad5fbd..1ca7856f8136 100644 --- a/drivers/block/drbd/drbd_worker.c +++ b/drivers/block/drbd/drbd_worker.c | |||
@@ -1705,8 +1705,8 @@ int drbd_worker(struct drbd_thread *thi) | |||
1705 | 1705 | ||
1706 | D_ASSERT(mdev->state.disk == D_DISKLESS && mdev->state.conn == C_STANDALONE); | 1706 | D_ASSERT(mdev->state.disk == D_DISKLESS && mdev->state.conn == C_STANDALONE); |
1707 | /* _drbd_set_state only uses stop_nowait. | 1707 | /* _drbd_set_state only uses stop_nowait. |
1708 | * wait here for the EXITING receiver. */ | 1708 | * wait here for the exiting receiver. */ |
1709 | drbd_thread_stop(&mdev->receiver); | 1709 | drbd_thread_stop(&mdev->tconn->receiver); |
1710 | drbd_mdev_cleanup(mdev); | 1710 | drbd_mdev_cleanup(mdev); |
1711 | 1711 | ||
1712 | dev_info(DEV, "worker terminated\n"); | 1712 | dev_info(DEV, "worker terminated\n"); |