summaryrefslogtreecommitdiffstats
path: root/drivers/block/drbd/drbd_receiver.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/block/drbd/drbd_receiver.c')
-rw-r--r--drivers/block/drbd/drbd_receiver.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c
index 1fc87a389b9c..e262b0bcbf67 100644
--- a/drivers/block/drbd/drbd_receiver.c
+++ b/drivers/block/drbd/drbd_receiver.c
@@ -4482,11 +4482,19 @@ static void drbdd(struct drbd_connection *connection)
conn_request_state(connection, NS(conn, C_PROTOCOL_ERROR), CS_HARD);
}
+static int w_complete(struct drbd_work *w, int cancel)
+{
+ struct drbd_wq_barrier *b = container_of(w, struct drbd_wq_barrier, w);
+
+ complete(&b->done);
+ return 0;
+}
+
void conn_flush_workqueue(struct drbd_connection *connection)
{
struct drbd_wq_barrier barr;
- barr.w.cb = w_prev_work_done;
+ barr.w.cb = w_complete;
barr.w.connection = connection;
init_completion(&barr.done);
drbd_queue_work(&connection->sender_work, &barr.w);