From c5c291380be2875408ff0465f63b73ba24ad1d0a Mon Sep 17 00:00:00 2001 From: Philipp Reisner Date: Mon, 18 Jul 2011 15:45:15 +0200 Subject: [PATCH] --- yaml --- r: 309315 b: refs/heads/master c: 80f9fd55a66a6843373330901564ef2d9c7fb050 h: refs/heads/master i: 309313: 1c163288d78976f3f31e738c0704b5c215aea5fe 309311: ed54160b2969c9aa0ee4e1b53e19f5d091d52416 v: v3 --- [refs] | 2 +- trunk/drivers/block/drbd/drbd_receiver.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 8d9de6377e9a..598a7f777b84 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fd2491f4a4a403b376f71a336a36848158efb0fe +refs/heads/master: 80f9fd55a66a6843373330901564ef2d9c7fb050 diff --git a/trunk/drivers/block/drbd/drbd_receiver.c b/trunk/drivers/block/drbd/drbd_receiver.c index a85bbe1bbc2b..bb92671d1f16 100644 --- a/trunk/drivers/block/drbd/drbd_receiver.c +++ b/trunk/drivers/block/drbd/drbd_receiver.c @@ -1001,13 +1001,14 @@ static enum finish_epoch drbd_may_finish_epoch(struct drbd_conf *mdev, if (epoch_size != 0 && atomic_read(&epoch->active) == 0 && - test_bit(DE_HAVE_BARRIER_NUMBER, &epoch->flags)) { + (test_bit(DE_HAVE_BARRIER_NUMBER, &epoch->flags) || ev & EV_CLEANUP)) { if (!(ev & EV_CLEANUP)) { spin_unlock(&mdev->epoch_lock); drbd_send_b_ack(mdev, epoch->barrier_nr, epoch_size); spin_lock(&mdev->epoch_lock); } - dec_unacked(mdev); + if (test_bit(DE_HAVE_BARRIER_NUMBER, &epoch->flags)) + dec_unacked(mdev); if (mdev->current_epoch != epoch) { next_epoch = list_entry(epoch->list.next, struct drbd_epoch, list);