From e7eade3b267e533cc320b596e80775c0d2ee9471 Mon Sep 17 00:00:00 2001 From: Lars Ellenberg Date: Wed, 1 Sep 2010 09:50:23 +0200 Subject: [PATCH] --- yaml --- r: 213133 b: refs/heads/master c: c518d04fdec3d8b9d6f8b2228040934de9ee6708 h: refs/heads/master i: 213131: 1d3aea8ee5f325b097ba417ae9d0cfca5d83f4bc v: v3 --- [refs] | 2 +- trunk/drivers/block/drbd/drbd_nl.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 0c740669087d..c4db19a4385e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0778286a133d2d3f81861a4e5db308e359583006 +refs/heads/master: c518d04fdec3d8b9d6f8b2228040934de9ee6708 diff --git a/trunk/drivers/block/drbd/drbd_nl.c b/trunk/drivers/block/drbd/drbd_nl.c index 6742652c8abc..d066190f997a 100644 --- a/trunk/drivers/block/drbd/drbd_nl.c +++ b/trunk/drivers/block/drbd/drbd_nl.c @@ -750,14 +750,16 @@ void drbd_setup_queue_param(struct drbd_conf *mdev, unsigned int max_seg_s) __mu /* serialize deconfig (worker exiting, doing cleanup) * and reconfig (drbdsetup disk, drbdsetup net) * - * wait for a potentially exiting worker, then restart it, - * or start a new one. + * Wait for a potentially exiting worker, then restart it, + * or start a new one. Flush any pending work, there may still be an + * after_state_change queued. */ static void drbd_reconfig_start(struct drbd_conf *mdev) { wait_event(mdev->state_wait, !test_and_set_bit(CONFIG_PENDING, &mdev->flags)); wait_event(mdev->state_wait, !test_bit(DEVICE_DYING, &mdev->flags)); drbd_thread_start(&mdev->worker); + drbd_flush_workqueue(mdev); } /* if still unconfigured, stops worker again.