diff options
author | Jens Axboe <jens.axboe@oracle.com> | 2009-11-26 03:46:51 -0500 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2009-11-26 03:46:51 -0500 |
commit | 75e7b634309ef4eabf8a93d36e58863f727fa209 (patch) | |
tree | 6ad097218bd4510fb5b59fa29b654bd7c596bfbb /drivers | |
parent | d9449ce35a1e8fb58dd2d419f9215562a14ecca0 (diff) | |
parent | 35a8a3fdcd4f973a5430e868f2f2a5c363803a5b (diff) |
Merge branch 'for-jens' of git://git.drbd.org/linux-2.6-drbd into for-2.6.33
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/block/drbd/drbd_nl.c | 2 | ||||
-rw-r--r-- | drivers/block/drbd/drbd_receiver.c | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c index e2a5875a07b1..436a090b532b 100644 --- a/drivers/block/drbd/drbd_nl.c +++ b/drivers/block/drbd/drbd_nl.c | |||
@@ -733,7 +733,7 @@ void drbd_setup_queue_param(struct drbd_conf *mdev, unsigned int max_seg_s) __mu | |||
733 | */ | 733 | */ |
734 | static void drbd_reconfig_start(struct drbd_conf *mdev) | 734 | static void drbd_reconfig_start(struct drbd_conf *mdev) |
735 | { | 735 | { |
736 | wait_event(mdev->state_wait, test_and_set_bit(CONFIG_PENDING, &mdev->flags)); | 736 | wait_event(mdev->state_wait, !test_and_set_bit(CONFIG_PENDING, &mdev->flags)); |
737 | wait_event(mdev->state_wait, !test_bit(DEVICE_DYING, &mdev->flags)); | 737 | wait_event(mdev->state_wait, !test_bit(DEVICE_DYING, &mdev->flags)); |
738 | drbd_thread_start(&mdev->worker); | 738 | drbd_thread_start(&mdev->worker); |
739 | } | 739 | } |
diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c index 9bbc509443e5..c548f24f54a1 100644 --- a/drivers/block/drbd/drbd_receiver.c +++ b/drivers/block/drbd/drbd_receiver.c | |||
@@ -2400,6 +2400,7 @@ static int drbd_uuid_compare(struct drbd_conf *mdev, int *rule_nr) __must_hold(l | |||
2400 | 2400 | ||
2401 | 2401 | ||
2402 | *rule_nr = 80; | 2402 | *rule_nr = 80; |
2403 | peer = mdev->p_uuid[UI_CURRENT] & ~((u64)1); | ||
2403 | for (i = UI_HISTORY_START; i <= UI_HISTORY_END; i++) { | 2404 | for (i = UI_HISTORY_START; i <= UI_HISTORY_END; i++) { |
2404 | self = mdev->ldev->md.uuid[i] & ~((u64)1); | 2405 | self = mdev->ldev->md.uuid[i] & ~((u64)1); |
2405 | if (self == peer) | 2406 | if (self == peer) |
@@ -3499,8 +3500,10 @@ static void drbdd(struct drbd_conf *mdev) | |||
3499 | 3500 | ||
3500 | while (get_t_state(&mdev->receiver) == Running) { | 3501 | while (get_t_state(&mdev->receiver) == Running) { |
3501 | drbd_thread_current_set_cpu(mdev); | 3502 | drbd_thread_current_set_cpu(mdev); |
3502 | if (!drbd_recv_header(mdev, header)) | 3503 | if (!drbd_recv_header(mdev, header)) { |
3504 | drbd_force_state(mdev, NS(conn, C_PROTOCOL_ERROR)); | ||
3503 | break; | 3505 | break; |
3506 | } | ||
3504 | 3507 | ||
3505 | if (header->command < P_MAX_CMD) | 3508 | if (header->command < P_MAX_CMD) |
3506 | handler = drbd_cmd_handler[header->command]; | 3509 | handler = drbd_cmd_handler[header->command]; |