From 94227779762cdf71ee02e969a8db265456ade6ad Mon Sep 17 00:00:00 2001 From: Lars Ellenberg Date: Sun, 5 Dec 2010 14:11:14 +0100 Subject: [PATCH] --- yaml --- r: 242843 b: refs/heads/master c: 8a3c104438be4986a77f332009b695fcac48f620 h: refs/heads/master i: 242841: fa4c57645c4d46d753882db48fbe772ae6d6eace 242839: 637bcd32b1223e0c61ede04668820a9684aa785c v: v3 --- [refs] | 2 +- trunk/drivers/block/drbd/drbd_req.c | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index c51b4db6b193..cd4d1eec366e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 09b9e7979378fe070784de20e50bb1d42aa643ab +refs/heads/master: 8a3c104438be4986a77f332009b695fcac48f620 diff --git a/trunk/drivers/block/drbd/drbd_req.c b/trunk/drivers/block/drbd/drbd_req.c index 4cb8247d83c9..de5fe70f2b42 100644 --- a/trunk/drivers/block/drbd/drbd_req.c +++ b/trunk/drivers/block/drbd/drbd_req.c @@ -140,9 +140,14 @@ static void _about_to_complete_local_write(struct drbd_conf *mdev, struct hlist_node *n; struct hlist_head *slot; - /* before we can signal completion to the upper layers, - * we may need to close the current epoch */ - if (mdev->state.conn >= C_WF_BITMAP_T && mdev->state.conn < C_AHEAD && + /* Before we can signal completion to the upper layers, + * we may need to close the current epoch. + * We can skip this, if this request has not even been sent, because we + * did not have a fully established connection yet/anymore, during + * bitmap exchange, or while we are C_AHEAD due to congestion policy. + */ + if (mdev->state.conn >= C_CONNECTED && + (s & RQ_NET_SENT) != 0 && req->epoch == mdev->newest_tle->br_number) queue_barrier(mdev);