From 1dd1b734b0dd0b54ab77acbc5f868a5a8627df87 Mon Sep 17 00:00:00 2001 From: Hyunjun Lee Date: Wed, 30 Nov 2016 09:20:35 +0900 Subject: [PATCH] DW-1250 wait to finish progressing sync block when received data on L_BEHIND state, to prevent overlapped write, --- drbd/drbd_receiver.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drbd/drbd_receiver.c b/drbd/drbd_receiver.c index 251b4e10..bc8e3f59 100644 --- a/drbd/drbd_receiver.c +++ b/drbd/drbd_receiver.c @@ -3119,7 +3119,8 @@ static int receive_Data(struct drbd_connection *connection, struct packet_info * list_add_tail(&peer_req->recv_order, &connection->peer_requests); spin_unlock_irq(&device->resource->req_lock); - if (peer_device->repl_state[NOW] == L_SYNC_TARGET) + // DW-1250: wait until there's no resync on same sector, to prevent overlapped write. + if (peer_device->repl_state[NOW] >= L_SYNC_TARGET) wait_event(device->ee_wait, !overlapping_resync_write(device, peer_req)); /* In protocol < 110 (which is compat mode 8.4 <-> 9.0),