diff --git a/[refs] b/[refs] index 9f12e8e0562a..cc5e677658ed 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 615e087fbd7483fafa28c8a1a4d1656251e0604d +refs/heads/master: d10b4ea32bf2b77a3d56a20992cd549978df7b38 diff --git a/trunk/drivers/block/drbd/drbd_receiver.c b/trunk/drivers/block/drbd/drbd_receiver.c index 9c888e5b648f..e546dd3fab8a 100644 --- a/trunk/drivers/block/drbd/drbd_receiver.c +++ b/trunk/drivers/block/drbd/drbd_receiver.c @@ -4440,6 +4440,11 @@ static int drbd_disconnected(struct drbd_conf *mdev) drbd_finish_peer_reqs(mdev); + /* This second workqueue flush is necessary, since drbd_finish_peer_reqs() + might have issued a work again. The one before drbd_finish_peer_reqs() is + necessary to reclain net_ee in drbd_finish_peer_reqs(). */ + drbd_flush_workqueue(mdev); + kfree(mdev->p_uuid); mdev->p_uuid = NULL;