diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c
index 57691a3..3c739ab 100644
--- a/drivers/block/drbd/drbd_receiver.c
+++ b/drivers/block/drbd/drbd_receiver.c
@@ -404,7 +404,7 @@
 	LIST_HEAD(work_list);
 	LIST_HEAD(reclaimed);
 	struct drbd_peer_request *peer_req, *t;
-	int ok = (mdev->state.conn >= C_WF_REPORT_PARAMS);
+	int ok = 1;
 
 	spin_lock_irq(&mdev->tconn->req_lock);
 	reclaim_net_ee(mdev, &reclaimed);
@@ -4667,37 +4667,27 @@
 	return true;
 }
 
-static int _drbd_process_done_ee(int vnr, void *p, void *data)
-{
-	struct drbd_conf *mdev = (struct drbd_conf *)p;
-	return !drbd_process_done_ee(mdev);
-}
-
-static int _check_ee_empty(int vnr, void *p, void *data)
-{
-	struct drbd_conf *mdev = (struct drbd_conf *)p;
-	struct drbd_tconn *tconn = mdev->tconn;
-	int not_empty;
-
-	spin_lock_irq(&tconn->req_lock);
-	not_empty = !list_empty(&mdev->done_ee);
-	spin_unlock_irq(&tconn->req_lock);
-
-	return not_empty;
-}
-
 static int tconn_process_done_ee(struct drbd_tconn *tconn)
 {
-	int not_empty, err;
+	struct drbd_conf *mdev;
+	int i, not_empty = 0;
 
 	do {
 		clear_bit(SIGNAL_ASENDER, &tconn->flags);
 		flush_signals(current);
-		err = idr_for_each(&tconn->volumes, _drbd_process_done_ee, NULL);
-		if (err)
-			return err;
+		idr_for_each_entry(&tconn->volumes, mdev, i) {
+			if (!drbd_process_done_ee(mdev))
+				return 1; /* error */
+		}
 		set_bit(SIGNAL_ASENDER, &tconn->flags);
-		not_empty = idr_for_each(&tconn->volumes, _check_ee_empty, NULL);
+
+		spin_lock_irq(&tconn->req_lock);
+		idr_for_each_entry(&tconn->volumes, mdev, i) {
+			not_empty = !list_empty(&mdev->done_ee);
+			if (not_empty)
+				break;
+		}
+		spin_unlock_irq(&tconn->req_lock);
 	} while (not_empty);
 
 	return 0;
@@ -4759,8 +4749,10 @@
 		   much to send */
 		if (!tconn->net_conf->no_cork)
 			drbd_tcp_cork(tconn->meta.socket);
-		if (tconn_process_done_ee(tconn))
+		if (tconn_process_done_ee(tconn)) {
+			conn_err(tconn, "tconn_process_done_ee() failed\n");
 			goto reconnect;
+		}
 		/* but unconditionally uncork unless disabled */
 		if (!tconn->net_conf->no_cork)
 			drbd_tcp_uncork(tconn->meta.socket);
